如何修改VBA代码将提取的唯一姓名逐行填充至D列?
解决方法
直接调整现有代码,通过遍历字典的键,将唯一姓名逐个写入D列的单元格即可,以下是修改后的完整代码:
Sub Unique_Values() Dim mySheet As Range Dim cell As Range Dim dict As Object Dim key As Variant Dim rowNum As Integer ' 正确赋值对象型变量,必须加Set Set mySheet = Sheets("Sheet1").Range("E9:I20") Set dict = CreateObject("scripting.dictionary") ' 遍历数据区域,存入字典去重,同时跳过空单元格 For Each cell In mySheet If cell.Value <> "" Then dict(cell.Value) = "" End If Next ' 从D2开始,逐个写入唯一姓名 rowNum = 2 For Each key In dict.keys Sheets("Sheet1").Range("D" & rowNum).Value = key rowNum = rowNum + 1 Next End Sub
关键调整说明
- 原代码中
mySheet赋值缺少Set,对象型变量赋值必须使用Set,否则会触发错误。 - 新增空单元格判断,避免字典存入无效的空值。
- 通过
For Each key In dict.keys遍历所有唯一姓名,用rowNum控制D列的行号,从D2开始依次写入每个值。
内容的提问来源于stack exchange,提问作者LibbyB
相关产品推荐
相关产品推荐

