Excel VBA查找和存储
我有这张单子 我想先找到familiyX,然后转到爸爸妈妈那边,然后将下面列出的地址保存在变量sTo中。我现在使用的代码是Excel VBA查找和存储,excel,vba,Excel,Vba,我有这张单子 我想先找到familiyX,然后转到爸爸妈妈那边,然后将下面列出的地址保存在变量sTo中。我现在使用的代码是 Sub findAndStore() Dim EmailRng As Range, cl As Range Dim sTo As String, fam As String fam = "family2" Set EmailRng = Worksheets("sheet2").Range("D3:D"
Sub findAndStore()
Dim EmailRng As Range, cl As Range
Dim sTo As String, fam As String
fam = "family2"
Set EmailRng = Worksheets("sheet2").Range("D3:D" & Worksheets("sheet2").Cells(Worksheets("sheet2").Rows.Count, "D").End(xlUp).Row)
For Each cl In EmailRng
sTo = sTo & ";" & cl.Value
Next
End Sub
正如你们所看到的,范围是硬编码的,我想根据fam持有的值使其动态化,你们能帮我吗?你们真的需要代码吗 我建议创建一个新的工作表,其中数据是按列列出的字段和按行列出的记录,而不是创建一个透视表并获取所需的信息 然而,为了VBA培训
Sub findAndStore(family_name As String)
' find the family column
Dim family_column As Integer, mum_column As Integer, dad_column As Integer
family_column = ActiveSheet.Range("1:1").Find(family_name).Column
' get values
Dim collected_addresses As String
Dim addresses_collection As Variant
Set addresses_collection = New Collection
For column_offset = 0 To 1 'mum and dad column
current_row = 3 'start on a third row under dad/mum header
Do
cell_value = ActiveSheet.Cells(current_row, family_column + column_offset).Value
current_row = current_row + 1 'move to next row
If cell_value <> "" Then addresses_collection.Add cell_value
Loop Until cell_value = ""
Next column_offset ' next column
For Each s In addresses_collection
collected_addresses = collected_addresses & s & ";"
Next s
Debug.Print collected_addresses
End Sub
子findAndStore(家族名称为字符串)
'查找族列
Dim family_列为整数,mum_列为整数,dad_列为整数
family\u column=ActiveSheet.Range(“1:1”).Find(family\u name).column
“获取价值
将收集的地址设置为字符串
Dim地址\u集合作为变量
设置地址\u集合=新集合
对于列_offset=0到1'爸爸妈妈列
当前_行=3'从dad/mum标题下的第三行开始
做
单元格\u值=ActiveSheet.Cells(当前行、族列+列偏移量)。值
当前行=当前行+1'移动到下一行
如果单元格\u值为“”,则地址为\u集合。添加单元格\u值
循环直到单元格_value=“”
下一列\u偏移量“下一列
对于地址集合中的每个s
收集的地址=收集的地址&s&“;”
下一个s
调试。打印收集的\u地址
端接头
您好,谢谢您的输入!问题是,我想让地址在mom或dad下,而不是同时在mom或dad下,我希望.find步骤基于fam变量中存储的内容。这只是第一步和第二步创建电子邮件,但我已经完成了这一步。查找部分基于family_name参数,只需将其更改为您的遗嘱或使用单元格值(如果您愿意)。我使用了您的代码,并通过我自己的一点触摸使其正常工作,感谢您的帮助!不客气。如果有帮助,请记下我的答案。