2016-12-29 9 views
0

私はカスタムURLの列を作成しています(Mailchimpにインポートするため)、あまりにも厄介なものに遭遇しました。ExcelでトリッキーなフィリングVB

私は他のセルから要素を取り出すURL列を作成しています。 URLのほとんどの部分は、1つの「ロール」変数を除いて同じになります。 ? /て、partname = varEmployee &のClientID = varClient &役割= varRole

http://domain.com/varPath:ここでは太字の部分は、スプレッドシートから供給される変数がどこにあるか、最終的なURLがどのように見えるかです

URL列が下列Aにある同じ行数が明確化のためにスプレッドシートに関連する列/セルのリストであるダウン塗りつぶし:

Column A = email of all employees completing form 
Cell B2 = first name (always using first entry for "varEmployee" in the url) 
Cell C2 = last name (same as above) 
Column D = varClient (stays the same) 
Column E = varRole (THIS IS THE TRICKY ONE since I need to get the changing value) 
cell I2 = varPath 

"varEmployee"変数は常に同じになります(B2 + C2) varClientとvarPathについては、2番目の行(ヘッダの下)の値だけが必要なので同じです。しかし、 "varRole"変数は、列Aの各電子メールが列Eの別の役割に関連付けられているため、各行ごとに変更されます。変更を続けるため、URL文字列にその値を取得する方法はわかりません。誰かがアイディアを持っているなら、私のコードは以下の通りです。前もって感謝します。

Dim lngLastRow As Long 
Dim varURL As String 
Dim varSurvey As String 
Dim varPart As String 
Dim varEmployee As String 
Dim varRole As String 
Dim varClient As String 
varURL = "https://domain.com/" + Range("I2").Text 
varSurvey = Range("I2").Value 
varPart = "?PartName=" 
varEmployee = Range("B2") + " " + Range("C2") 
varRole = "&Role=" + Range("E2") 
varClient = "&ClientID=" + Range("D2").Text 
varFinal = (varURL & varSurvey & varPart & varEmployee & "&ClientID=" &  varClient) 
lngLastRow = Cells(Rows.Count, "A").End(xlUp).Row 
Range("F2:F" & lngLastRow).Value = voxFinal 
+0

ではなく、1に列Fのための全範囲を行うには、あなたが順番に各行を行いループを記述する必要があります行きます。このようなことに使用できるソースは数多くあります。 http://stackoverflow.com/a/31477895/1033684 –

+0

私は複雑さを過小評価していました(皆さんにとってはおそらく簡単です)。私が今日していたよりも多くのことを学ぶように見えます;)リンクのおかげで、私は今夜、私が時間の良い良い時間を持っているときに見ようとします。 – waterwalk77

+0

私はほとんど理解しています...あなたのスプレッドシートのスナップショットを投稿して、期待される出力が何か...このURLはどこに別のセルに入りますか? – Hambone

答えて

0

[OK]を、私はロブの返信を見た後の記事「次は」いくつかのより多くのを読んで、私はアプローチを変えてわずかに異なるスクリプトを書きました。これは私が動作するように思われる一緒cobblingてしまったものです:

Sub buildURL() 
' 
' buildURL Macro 
' 

' 
Dim N As Long, i As Long, j As Long 
Dim voxURL As String 
Dim varSurvey As String 
Dim varPart As String 
Dim varEmployee As String 
Dim varRole As String 
Dim varClient As String 
varURL = "https://domain.com/" + Range("I2").Text 
varSurvey = Range("I2").Value 
varPart = "?PartName=" 
varEmployee = Range("B2") + " " + Range("C2") 
varRole = "&Role=" 
varClient = "&ClientID=" + Range("D2").Text 
varFinal = (varURL & varSurvey & varPart & varEmployee & varClient & varRole) 

N = Cells(Rows.Count, "A").End(xlUp).Row 
j = 2 
For i = 2 To N 
If Not IsEmpty(Range("A" & i).Value) Then 
Cells(j, "F").Value = voxFinal & Cells(i, "E").Value 
j = j + 1 
End If 
Next i 
End Sub 
関連する問題