我注意到,一个包含标签复制时嵌入了引号。我正在寻找不带引号的此类单元格。
示例
我有 5 个单元格:A1、A2、A3、A4 和 A5。它们的公式如下:
它们在 Excel 上的样子如下:
公式设置如下,使得将单元格复制到文本编辑器时的预期结果如下:
不幸的是,我得到的结果是:
问题在于引号。我需要复制那些不带引号的单元格。
答案1
那么 VBA 解决方案如何?这会将所有选择从左上角选定的单元格复制到右下角选定的单元格。如果您选择不协调的单元格,此代码将收集左上角和右下角之间的所有内容。当然,您可以更改这一点。这样更简单。它在列之间放置制表符,在行之间放置换行符。
Sub CopyText()
Dim obj As Object
Dim rng As Range
Dim r As Long, c As Long
Dim s As String
Dim rTL, rBR, cTL, cBR
rTL = Selection.Cells(1, 1).Row
cTL = Selection.Cells(1, 1).Column
For Each rng In Selection.Cells
If rng.Row < rTL Then rTL = rng.Row
If rng.Column < cTL Then cTL = rng.Column
If rng.Row > rBR Then rBR = rng.Row
If rng.Column > cBR Then cBR = rng.Column
Next
For r = rTL To rBR
For c = cTL To cBR
s = s & Cells(r, c).Value
If c < cBR Then s = s & Chr(9)
Next
If r < rBR Then s = s & vbNewLine
Next
Set obj = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
obj.SetText s
obj.PutInClipboard
Set obj = Nothing
End Sub
如果你对这部分感到疑惑:
Set obj = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
...这只是后期绑定版本,Set obj = New DataObject
因此您不必在 VBA 中添加任何引用。