我正在尝试清除从工作表1复制到工作表2的最后一行之后的50行。因此,工作表2中的最后一行数据应该总是有50个空白行。
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
谢谢!
答案 0 :(得分:1)
您在引号内使用变量名称,因此它们被视为文字文本。
如果您要清除(copied_row_count + j)处的行,可以使用以下行:
ws2.Rows(copied_row_count + j).ClearContents
答案 1 :(得分: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
- &gt;对象定义错误。
答案 2 :(得分:0)
您编写范围查找的方式是查找字面上标记为"copied_row_count + j:copied_row_count + j"
的范围。如果它在引号中,则不使用该变量。我认为你实际上可以替换你的整个循环。
删除Do循环并尝试此行
ws2.Range(copied_row_count & ":" & copied_row_count + 50)