我正在运行 UFT 工具中的以下代码,它总是将值复制并粘贴为图像而不是文本。
'代码:
Set WB2 = GetObject(FileName2) 'Get the Destination Excel File Handle which is already opened
WB2.Worksheets("WebADI").Unprotect
Set Myexcel=createobject("excel.application") 'Create Excel Object
Myexcel.Visible=True
Set WB1=Myexcel.Workbooks.Open(FileName) 'Open the Source Excel File
Myexcel.Visible=True
WB1.Activate()
WB1.Worksheets("CHPGEFABRFQ").Range("$B$5:$AE$11").Copy
WB2.Activate()
Myexcel.Visible=True
WB2.Worksheets("WebADI").Range("$C$5").PasteSpecial
尝试了所有可能的 pastespecial 选项,如下所示,均无效。有人可以帮忙吗?PasteSpecial Paste=xlPasteValues
PasteSpecial Paste=xlPasteValuesAndNumberFormats
PasteSpecial Paste=xlPasteFormulas
PasteSpecial Paste=xlPasteAllUsingSourceTheme
PasteSpecial Paste=xlPasteAllExceptBorders
PasteSpecial Paste=xlPasteColumnWidths
最佳答案
我刚才测试了一下,我认为.Copy
不能很好地处理两个单独的 excel 应用程序。但是我没有问题将值复制到数组中,然后将数组复制到单独的应用程序/工作簿中。
这是您将复制/粘贴为值数组而不是使用剪贴板的方法。
Dim ValArray As Variant
Set WB2 = GetObject(FileName2) 'Get the Destination Excel File Handle which is already opened
WB2.Worksheets("WebADI").Unprotect
Set Myexcel = CreateObject("excel.application") 'Create Excel Object
Myexcel.Visible = True
Set WB1 = Myexcel.Workbooks.Open(Filename) 'Open the Source Excel File
ValArray = WB1.Worksheets("CHPGEFABRFQ").Range("$B$5:$AE$11").Value
WB2.Worksheets("WebADI").Range("$C$5").Resize(UBound(ValArray), UBound(ValArray, 2)).Value = ValArray
关于excel - VBA:pastespecial 始终粘贴为目标 Excel 表中的图像。尝试了所有可用的参数,但一切都粘贴图像而不是文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68624858/