Suppose
Sheets("Sheet1").Activate
Dim Begin as Range
Set Begin = Range("A10")
When I use
Sheets("Sheet2").Activate
Begin
seems not the Range("A10")
in Sheet2
, then how to make the Begin
become the Range("A10")
in Sheet2
?
I show my full code following, you can see that for each loop, I want deal with each sheet for same operation. But my code seems very tedious, and if I want to change Range("A10")
to Range("A9")
, then I should change each one manually.
Module1.Re()
will also use Range("A10")
, actually in each loop, I want to pass the variable Range("A10").Offset(i,0)
into each sheet, but it is the cell in the corresponding sheet.
That's why I want to replace Range("A10")
by a common variable Begin.
Could you help me to simplify my code, actually I am totally new in VBA.
In 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