excel - VBA:pastespecial 始终粘贴为目标 Excel 表中的图像。尝试了所有可用的参数,但一切都粘贴图像而不是文本

标签 excel vba copy

我正在运行 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/

相关文章:

vba - 在 vba 中循环时更改原始集合

excel - 为什么 Worksheet.Copy 不返回对创建的新工作簿的引用

vba - 如何在 vba 中为一组特定字符设置 Word 的范围?

emacs - 使用现有文件名作为 "base"在 emacs 中复制文件

excel - 如何格式化剪贴板中的行和列以像从 Excel 中一样粘贴?

php - 如何跨 SMB 安装进行 PHP 复制

mysql - 运行时错误 '-2147217900 (80040e14)'

.net - Excel 互操作移动/设置图像位置

vba - Excel VBA - 获取工作表的父窗口

excel - 当我更改 Dim 语句的位置时引发 ByRef 参数类型不匹配错误