嗨,我有以下代码:
Sub test()
Dim objData As DataObject ' Set a reference to MS Forms 2.0
Dim sHTML As String
Dim sSelAdd As String
Dim rng As Range
Cells(2, 7).Value = Cells(2, 7).Value
Set rng = ActiveSheet.Cells(2, 7)
Set objData = New DataObject
sHTML = rng.Text
objData.SetText sHTML
objData.PutInClipboard
ActiveSheet.PasteSpecial Format:="Unicode Text"
End Sub
但是我想知道是否可以使用此方法:
ActiveSheet.PasteSpecial Format:="Unicode Text"
在某种程度上,我也定义了粘贴范围。似乎要粘贴的文本被复制到多个单元格中,从而覆盖其他单元格。
答案 0 :(得分:1)
您可以将其粘贴到当前选择的单元格中,这对于最终用户可能非常直观和有用:
Selection.PasteSpecial Format:="Unicode Text"
如果要在代码中定义位置,则可以执行以下操作:
Range("A1").PasteSpecial Format:="Unicode Text"
编辑:今天我了解到Range.PasteSpecial与Worksheet.PasteSpecial不同。
看起来您可以在尝试粘贴之前通过选择单元格来选择要粘贴数据的位置。这似乎对我有用:
Sub test()
Dim objData As DataObject ' Set a reference to MS Forms 2.0
Dim sHTML As String
Dim sSelAdd As String
Dim rng As Range
Cells(2, 7).Value = Cells(2, 7).Value
Set rng = ActiveSheet.Cells(2, 7)
Set objData = New DataObject
sHTML = rng.Text
objData.SetText sHTML
objData.PutInClipboard
rng.Select '<----Add this line.
ActiveSheet.PasteSpecial Format:="Unicode Text"
End Sub
答案 1 :(得分:0)
我发现这可以正常工作:
Private Sub Worksheet_Activate()
Dim objData As DataObject ' Set a reference to MS Forms 2.0
Dim sHTML As String
Dim sSelAdd As String
Dim rng As Range
Cells(1, 7).Value = Cells(1, 7).Value
Set rng = ActiveSheet.Cells(1, 7)
Set objData = New DataObject
sHTML = rng.Text
objData.SetText (sHTML)
objData.PutInClipboard
rng.Select
Worksheets("GridData").Range("G1").Select
ActiveSheet.PasteSpecial Format:= _
"Unicode Text"
End Sub