0
我试图编写一个代码,查看打开的工作表(figWkst),在F列中查找并收集所有唯一名称,然后在一次添加一个唯一名称后加上单词“看守者“和一个逗号。因此,例如,如果列F中的唯一名称是“红色,白色,蓝色,绿色”,则新工作表中的列R行n将显示“红色观察者,白色观察者,蓝色观察者,绿色观察者“。我现在所拥有的只是在列R中显示F行n显示的列。范围内的唯一值
我正在考虑使用字典,但我似乎无法绕过它。任何帮助,将不胜感激!谢谢。这里是我的代码:
Sub Role()
'define variables
Dim RoleWkb As Workbook, figWkb As Workbook, RoleWkst As Worksheet, figWkst As Worksheet
Dim aCell As Long, a As Long, c As String, i As String, id As String, email As String, cityname As Variant
'open workbook
fNameAndPath = Application.GetOpenFilename(Title:="Role Workbook")
Set RoleWkb = Workbooks.Open(fNameAndPath)
Set figWkb = ThisWorkbook
Set RoleWkst = RoleWkb.Sheets("UserProfile")
Set figWkst = figWkb.Worksheets("User Information")
cityname = InputBox("City name?")
'adding watcher group
aCell = figWkst.Range("D" & Rows.Count).End(xlUp).Row
For a = 12 To aCell
If figWkst.Cells(a, 17) = "x" Or figWkst.Cells(a, 17) = "X" Then
If RoleWkst.Cells(a - 1, 18) <> "" Then
RoleWkst.Cells(a - 1, 18) = Trim(RoleWkst.Cells(a - 1, 18) & ", " & cityname & " " & figWkst.Cells(a, 6) & " Watcher")
Else
RoleWkst.Cells(a - 1, 18) = Trim(cityname & " " & figWkst.Cells(a, 6) & " Watcher")
End If
End If
Next a
End Sub
这里我的答案给出了一个简单的方法来测试在循环范围/数组时使用重复数据https://stackoverflow.com/questions/42301589/identifying-duplicate-values-and-copying-to-other-cells-using-for-loops-in-vba-e/42301986 #42301986 –