2015-07-20 434 views
2

我正在写一个将数据复制到模板窗体的宏,将窗体保存为不同的名称,然后使用相同的空白窗体进行复制。一些数据被复制到合并的单元格中。奇怪的是,我目前使用的代码适用于第一次,第二次和第三次迭代,但不是第四次。无法使用VBA粘贴到合并的单元格

我试过了我能想到的所有东西,但它仍然不起作用。它给了我错误消息“我们不能这样做一个合并的单元格”。

这里是不会粘贴到单元格中的代码。

'  
' Transfers Component 1 Data 
' 
    Range("B27").Select 
    Selection.Copy 
    Windows("Protected_Form.xls").Activate 
    Range("B61:D61").Select 
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ 
     xlNone, SkipBlanks:=False, Transpose:=False 

这里是,它早在粘贴到合并的单元格中的程序代码:

' 
' Transfers Component 1 Data 
' 
    Range("AV194").Select 
    Selection.Copy 
    Windows("Protected_Form.xls").Activate 
    Range("B61:D61").Select 
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ 
     xlNone, SkipBlanks:=False, Transpose:=False 

正如你所看到的,唯一改变的是被复制什么单元格的数据从。

编辑︰ 刚刚意识到,我在程序中使用相同的代码(不工作的部分)在一定的条件下。我只是尝试在这些条件下运行它,它的工作。

现在我非常困惑。随意问我澄清事情,我知道这很混乱。我知道.Select。很慢,我不在乎。

+0

这个错误本身就说明了一切。无论是在源代码还是目标工作簿中,都有一个合并单元。 – nicholas79171

+0

该程序的其他部分粘贴到合并的单元格中。 – bdkong

+0

刚刚看到你的编辑,你仍然有同样的问题? – nicholas79171

回答

2

您是否试过完全限定范围参考?也许在程序范围的前面(“B27”)。选择是在一张纸上选择范围(“B27”)。选择是在以后的另一张纸上进行选择。

此外,不要竖琴,但...选择不仅速度慢,它也往往会导致意想不到的结果,我怀疑这是你现在的问题。我知道你在评论中说过,你没有时间(奢侈)来摆脱它,但现在清理代码所花费的时间将为你节省吨的时间,如果你需要调试,更改,修改和更新等等。我不会把它看作是一件苦差事,而是写好VBA代码的必要性!

相关问题