Sheets("Sheet1").Activate
Dim Begin as Range
Set Begin = Range("A10")
當我使用
Sheets("Sheet2").Activate
Begin
似乎沒有Sheet2
的Range("A10")
,那麼如何使Begin
成爲Range("A10")
在Sheet2
?
我顯示我的完整代碼如下,你可以看到,對於每個循環,我想處理每個工作表相同的操作。但我的代碼似乎非常繁瑣,如果我想將Range("A10")
更改爲Range("A9")
,那麼我應該手動更改每一個。
Module1.Re()
也將使用Range("A10")
,實際上在每個循環中,我想將變量Range("A10").Offset(i,0)
傳遞給每個工作表,但它是相應工作表中的單元格。
這就是爲什麼我要用普通變量替換Range("A10")
Begin.
你能幫我簡化我的代碼嗎?實際上我是VBA中的全新功能。
在Modules2
Sub Main()
Sheets("Sheet1").Activate
Z = 5
Y = 10
Dim Column As Integer
Dim Row As Integer
Set Begin = Range("A10")
Row = Begin.End(xlDown).Row - Begin.Row
For i = 1 To Row
Sheets("1 HK").Activate
Module1.Re (i)
Sheets("5 HK").Activate
Module1.Re (i)
Sheets("1 HK").Activate
Set Begin1 = Range("A10").Offset(i + 1, 4)
Set Begin2 = Range("A10").Offset(i + Z, 4 + Y)
Range(Begin1, Begin2).Clear
Sheets("5 HK").Activate
Set Begin1 = Range("A10").Offset(i + 1, 4)
Set Begin2 = Range("A10").Offset(i + Z, 4 + Y)
Range(Begin1, Begin2).Clear
Next i
End Sub
相關:https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba –