目前正在尝试使用PasteSpecial,但遇到某种类型的语法问题 要么得到COM错误:“无法获取范围类的粘贴特殊属性。”,或者它没有从剪贴板粘贴。
这是我到目前为止所尝试的:
Create folder references
感谢您的帮助。
答案 0 :(得分:0)
在我看来,这可以通过更简单的方式实现。
您可以使用 Ctrl + Alt + v 在Excel中打开“选择性粘贴”对话框。从那里,您只需点击corresponding letter即可获得所需的任何设置,然后输入,剪贴板的内容将以所需的格式粘贴。
在该主题之后,这是一个例子:
pasteSpecial(mode){
replace := {"All":"a","all":"a","Formulas":"f","formulas":"f","Values":"v","values":"v","Formats":"t","formats":"t","Comments":"c","comments":"c","Validation":"n","validation":"n"}
For start, end in replace {
StringReplace, mode, mode, %start%, %end%, All
}
SendInput, {Ctrl down}{Alt down}{v down}{Ctrl up}{Alt up}{v up}
WinWait, Paste Special
WinGetTitle, Title, A
if (RegExMatch(Title, "Paste Special"))
{
SendInput, %mode%{Enter}
}}
F3::
pasteSpecial("Values")
return
这里你有一个函数可以解析字符串输入,并用键盘快捷键替换大/小写版本。这将允许更多的控制,而不仅仅是专门为粘贴值编码。
答案 1 :(得分:0)
Xl.Range("A:D").PasteSpecial(-4163)
只要您制作的副本具有正确的属性以供粘贴理解,就可以正常工作。
示例:
Xl.Range("E:H").Copy ;Copy of the excel range which has the correct properties for next stage.
Xl.Range("A:D").PasteSpecial(-4163) ;Paste the value without formatting