Sub Test()
Dim copycell As DataObject
Dim ws As Workbook
Dim strText As String
Set ws = Workbooks.Open("C:\Users\Desktop\New Microsoft Excel Worksheet.xlsx")
strText = ws.Sheets("Sheet1").Range("A1").Value
MsgBox strText
With New MSForms.DataObject
.SetText strText
.PutInClipboard
End With
End Sub
场景是将整个 excel 值复制到剪贴板,上述代码将仅复制单元格 A1 值,任何人都可以更新代码,以便将 excel 中的所有数据复制到剪贴板
答案1
以下行:
strText = ws.Sheets("Sheet1").Range("A1").Value
需要更改为:
strText = ws.Sheets("Sheet1").ActiveCell.Value
所作的引用Range("A1")
是对单元格 A1 的固定引用。使用ActiveCell
则引用当前选定的单元格。