Excel VBA循环动态范围
我想根据C列的长度分析B列中的单元格,并将我的值返回A列 以下代码适用于sheet1,但在后续图纸中,范围不会改变以反映C列的长度。换句话说,对于所有后续图纸,尽管返回的值正确,但它们仅填充到sheet1中C列的长度 有人知道为什么我的循环不能反映C列的动态范围吗Excel VBA循环动态范围,excel,Excel,我想根据C列的长度分析B列中的单元格,并将我的值返回A列 以下代码适用于sheet1,但在后续图纸中,范围不会改变以反映C列的长度。换句话说,对于所有后续图纸,尽管返回的值正确,但它们仅填充到sheet1中C列的长度 有人知道为什么我的循环不能反映C列的动态范围吗 Sub SetValuesAllSheets() Dim wSht As Worksheet Dim myRng As Range Dim allwShts As Sheets Dim cel As R
Sub SetValuesAllSheets()
Dim wSht As Worksheet
Dim myRng As Range
Dim allwShts As Sheets
Dim cel As Range
Dim LR As Long
LR = Range("C" & Rows.Count).End(xlUp).Row
Set allwShts = Worksheets
For Each wSht In allwShts
Set myRng = wSht.Range("B1:B" & LR)
For Each cel In myRng
If cel.Interior.Color = RGB(255, 0, 0) Then
cel.Offset(0, -1) = "colour"
ElseIf IsNumeric(cel) = True Then
cel.Offset(0, -1) = "number"
End If
Next cel
Next wSht
End Sub
实际上,LR是为活动板材确定的。您需要将其插入循环以使其工作:
Sub SetValuesAllSheets()
Dim wSht As Worksheet
Dim myRng As Range
Dim allwShts As Sheets
Dim cel As Range
Dim LR As Long
Set allwShts = Worksheets
For Each wSht In allwShts
LR = wSht.Range("C" & Rows.Count).End(xlUp).Row
Set myRng = wSht.Range("B1:B" & LR)
For Each cel In myRng
If cel.Interior.Color = RGB(255, 0, 0) Then
cel.Offset(0, -1) = "colour"
ElseIf IsNumeric(cel) = True Then
cel.Offset(0, -1) = "number"
End If
Next cel
Next wSht
End Sub
实际上,LR是为活动纸张确定的。您需要将其插入循环以使其工作:
Sub SetValuesAllSheets()
Dim wSht As Worksheet
Dim myRng As Range
Dim allwShts As Sheets
Dim cel As Range
Dim LR As Long
Set allwShts = Worksheets
For Each wSht In allwShts
LR = wSht.Range("C" & Rows.Count).End(xlUp).Row
Set myRng = wSht.Range("B1:B" & LR)
For Each cel In myRng
If cel.Interior.Color = RGB(255, 0, 0) Then
cel.Offset(0, -1) = "colour"
ElseIf IsNumeric(cel) = True Then
cel.Offset(0, -1) = "number"
End If
Next cel
Next wSht
End Sub
问候