这段代码在一个单元格上为我工作(受@Rick 的回答启发,但由于Clipboard.SetDataObject(objData)
导致错误并且也objRange.PasteSpecial()
没有工作而进行了一些更改):
Private Sub Worksheet_Change2(ByVal Target As Range, ByVal sht As Worksheet)
Dim objData As DataObject 'Set a reference to MS Forms 2.0'
Dim sHTML As String
Dim sSelAdd As String
Application.EnableEvents = False
objData = New DataObject
sHTML = Target.Text
objData.SetText sHTML
objData.PutInClipboard
sht.PasteSpecial Format:="Unicode Text"
Application.EnableEvents = True
End Sub
Sub test()
Dim rng As Range
Set rng = ActiveSheet.Range("F15") 'cell to change'
Worksheet_Change2 rng, ActiveSheet
End Sub
有关更多详细信息,请参阅此帖子
我想稍微调整一下它应该不会太难,它适用于整个工作表,而不仅仅是一个特定的单元格,您可能应该添加一些 if 条件来包装此代码以防止错误,请参阅此帖子了解一些更多信息