手头的任务是在 A 列中搜索以查看我有哪些值(它们以字母的形式)并为每个唯一条目粘贴其值在另一列中一次。
这是一个直观的解释:

我想出的是创建一个 For 循环,该循环通过 A 列进行,并创建一个条件,如果它找到某个值,那么它将在该范围内插入该值。这是代码:
For i = 1 to 26
if cells(i,26).value= "A" Then
Range ("C1")= "A"
Elseif cells(i,26).value = "B" then
Range ("C2").value = "B"
ElseIf (i,26).value = "C" then
Range ("C3").value = "C"
EndIf
Next i
end sub
Run Code Online (Sandbox Code Playgroud)
我想缩短这个过程,因为我的数据集非常大,有很多公司名称。有什么建议吗?我相信必须有一种方法来了解价值观,而不必亲自查看所有价值观。
如果目标只是获取在Column A输出中找到的唯一值列表,Column C您可以使用以下宏。这实际上只是重新创建您手动用来查找唯一值的一种方法的步骤。不是最复杂的解决方案,但它有效
假设不使用工作表上的最后一列
Sub Unique()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lr As Long, lc As Long
'Determine Range Size
lr = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
lc = ws.Cells(1, ws.Columns.Count).Column
'Copy Company Names To Helper Column/Remove Duplicates
ws.Range("A2:A" & lr).Copy ws.Cells(1, lc)
ws.Columns(lc).RemoveDuplicates Columns:=1, Header:=xlNo
lr = ws.Cells(ws.Rows.Count, lc).End(xlUp).Row
'Output Unique Values From Helper Column
ws.Range(ws.Cells(1, lc), ws.Cells(lr, lc)).Copy
ws.Range("C2").PasteSpecial xlPasteValues
'Delete Helper Column
ws.Columns(lc).Delete
End Sub
Run Code Online (Sandbox Code Playgroud)
请注意我对帖子的评论。这里可能根本不需要 VBA