我已经有一段时间没有使用宏了,所以请耐心等待。我真的很欣赏你的专业知识。
我正在尝试创建一个由“;”分隔的范围内的唯一值列表。但不幸的是,我没有足够强大的知识基础来执行此操作。
目前我使用这个系统:选择范围(在本例中我们使用 A2:A100)。复制并粘贴到新工作表中,因为我不想破坏原始工作表。从列表中删除重复项。复制并粘贴为转置以使列表排成一行。然后运行这个宏
Sub insert_column_every_other()
For colx = 2 To 30 Step 2
Columns(colx).Insert Shift:=xlToRight
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
然后选择范围并替换特殊,用 ; 替换空格。然后使用 CONCAT 生成所有用 ; 分隔的单元格的列表。
这显然是无效的,必须有更好的方法!
我希望宏只读取原始工作表中的 A2:A100 列表,然后创建由“;”分隔的唯一单元格值的列表。如果可能的话,我也希望在 MSGBOX 中弹出此信息。
使用 TEXTJOIN 作为数组公式:
=TEXTJOIN(";",TRUE,IF(IFERROR(MATCH(A2:A100,A:A,0)=ROW(A2:A100),FALSE),A2:A100,""))
Run Code Online (Sandbox Code Playgroud)
作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。
归档时间: |
|
查看次数: |
53 次 |
最近记录: |