2015-05-19 116 views
0

我試圖清除最後一行之後我從工作表1複製到工作表2中的最後一行工作表2中的數據應始終有50個空白行。VBA Excel:運行時錯誤'1004'object'_Worksheet'的方法'範圍'失敗

Public copied_row_count As Integer 
Public ws1 As Worksheet 
Public ws2 As Worksheet 
Sub Button1_Click() 

'Defining the constants below. Change if need based on the value definitions' 

Dim Test_Set_Colmn_Number As Integer               'Defining the value of the Cylinder Test Set column number' 
Test_Set_Colmn_Number = 23                  'W is the current column with the cylinder test set values' 

Set ws1 = ThisWorkbook.Sheets("Concrete Log") 
Set ws2 = ThisWorkbook.Sheets("Concrete Tracking Graphs") 

copied_row_count = 1 
Dim j As Integer 
j = 0 

For i = 1 To Rows.count 
    If Not IsEmpty(Cells(i, Test_Set_Colmn_Number).Value) Then 
     ws1.Rows(i).Copy _ 
     ws2.Rows(copied_row_count) 
     copied_row_count = copied_row_count + 1 
    End If 
Next i 

Do While j < 50 
    ws2.Range("copied_row_count + j:copied_row_count + j").Clear 
    j = j + 1 
Loop 

End Sub 

我已經收窄誤差降到變量 copied_row_count 及其使用

ws2.Range("copied_row_count + j:copied_row_count + j").Clear 

謝謝!

回答

1

您使用引號內的變量名,所以它們被視爲文字文本。

如果您正在尋找在(copied_row_count + J),以清除行,您可以使用此行:

ws2.Rows(copied_row_count + j).ClearContents 
0

這應該是變量和字符串組成:

ws2.Range(copied_row_count & j & ":" & copied_row_count + j).Clear 

像以前一樣(ws2.Range("copied_row_count + j:copied_row_count + j").Clear),你從字面上搜索範圍copied_row_count & j & : & copied_row_count + j這顯然不存在 - >對象定義的錯誤。

0

您編寫範圍查找的方式是查找從字面上標爲"copied_row_count + j:copied_row_count + j"的範圍。如果它使用像這樣的引號,則不會使用該變量。我想你可以替換你的整個循環。

取出Do循環,並嘗試這條線

ws2.Range(copied_row_count & ":" & copied_row_count + 50) 
相關問題