无法使用VBA

时间:2015-07-20 18:54:59

标签: excel vba excel-vba merge

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

我已经尝试了我能想到的一切,但它仍然没有成功。它给了我错误信息"我们无法对合并的单元格进行操作"。

以下是不会粘贴到单元格中的代码。

'     
' 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。很慢,我不在乎。

1 个答案:

答案 0 :(得分:2)

您是否尝试过完全限定范围参考?也许在程序范围的早期(“B27”)。选择是在一张纸上选择和范围(“B27”)。选择后面是从另一张纸中选择。

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