2015-07-20 435 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代碼的必要性!

相關問題