VLOOKUPを試してみますが、1つの値しか返せません。私は私の結果が複数の電子メールを返すようにしたい、そして私の参照値は1つのセルの複数の名前である。最初のセルは、ルックアップテーブルと一致させたい値です。以下は Excel-複数の行から1つのセルに複数の値を返します
誰もメールがここにある場合、私のルックアップテーブルであるが、私は[email protected]のような結果を達成する方法; [email protected]、私はちょうどそれ以前のルックアップ電子メールを使用してVBAにリマインダーメールを自動化することができます?どのように私はこれを達成することができる?
私はデバッグするとき、私はまた、このエラーを得た、私が選択した電子メールに
Sub getEmails()
Dim toNames As Range
Set toNames = Range("J3:J500") ' names input by user
Dim names As Range
Set names = Range("Email!B3:C25") ' names range from lookup table from different worksheet
Dim splitNames
splitNames = Split(toNames, ",")
Dim selectedEmails As String
For i = 0 To UBound(splitNames)
findRange = names.Find(What:=splitNames(i), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
' if match found, get the email and store to selected emails variable
If Not findRange Is Nothing Then
selectedEmails = selectedEmails & Range("B" & findRange.Row) & ";"
End If
Next i
'output emails
Range("Q3:Q500") = selectedEmails
End Sub
これはまさに私がやりたくないことでした。私は、スタッフが将来どのような名前を書くのかを予測することはできません。だから私は値を検索するための数式を持つ必要があります – gpsrosak
私はVBAのループ内で複数のVLookupsを行うことをお勧めします。したがって、 'Pui Kuan、Eric'が入力フィールドであれば、それを個々の名前に分割し、個々の名前ごとにVLookupsを実行し、結果を連結します。 – YowE3K
上記のスクリプトを実行したVBAに基づいた例を表示できますか?ありがとう – gpsrosak