0

我的 VBA 宏在最新版本的 Excel for windows 10 上运行良好,但无法在 Mac OS Monterey 的 Excel (16.57) 上的剪贴板上插入大字符串。当我限制字符串的大小(不知道确切的限制是什么)时,宏会按预期运行。当我第一次运行它时尝试根据需要(使用非常大的字符串)使用它时,excel 偶尔会给我一个运行时错误“对象不支持此操作”,或者它将运行而没有抛出错误并且只是不添加文本到剪贴板。

如所写,代码从一组选定的单元格创建一个变体数组,找到数组的大小,并将每个单元格的字符串值添加到一个新数组中。然后将该数组连接在一起,最后在每个分隔符处拆分以创建一个新行。同样,这在 Windows 中完美运行,而不是在具有非常大字符串的 Mac OS 中。


Public Sub NoCommasCopyPaste()


Dim objData As New DataObject

Dim vMyArray() As Variant
Dim cellVariant As Variant

Dim sMyArray() As String
Dim rangeAddress As String

Dim i As Long
Dim rowCount As Long


rangeAddress = CStr(Selection.Address(0, 0))

'Debug.Print (rangeAddress)


vMyArray = Range(rangeAddress).Value

rowCount = 0

For Each Item In vMyArray
    rowCount = rowCount + 1
Next Item

'Debug.Print (rowCount)

ReDim sMyArray(rowCount) As String

i = 0

For Each Item In vMyArray
    i = i + 1
    'Debug.Print (CStr(vMyArray(i, 1)))
    sMyArray(i) = CStr(vMyArray(i, 1))
    'Debug.Print (sMyArray(i))
Next Item




joinString = Join(sMyArray, "**-**")


joinString = Replace(joinString, "**-**", vbLf)



Debug.Print (joinString)





objData.SetText (joinString)
objData.PutInClipboard


End Sub

4

0 回答 0