Sub CHECKas()
Dim lastrow As Long
Dim lastcol As Long
Dim l As Integer
Dim i As Integer
Dim rname As Constants
Set rngTarg = Selection
lastrow = Sheets("report").Range("B" & Rows.Count).End(xlUp).row
lastcol = Sheets("report").Cells(2, Columns.Count).End(xlToLeft).Column
Sheets("FEBBRAIO").Select
ActiveCell.Offset(0, -3).Copy
Sheets("REPORT").Select
Cells(1, lastcol + 1).PasteSpecial xlPasteAll
Application.CutCopyMode = False
rname = Application.ActiveCell.Value
ActiveCell.Offset(1, 0).Select
For i = 2 To lastrow
ThisWorkbook.Sheets("report").Select
If Range("f2:f" & lastrow) <= Val(CStr(rname.Value)) _
And Range("g2:g" & lastrow) > Val(CStr(rname.Value)) Then
Cells(i, ActiveCell.Column).Value = "1"
Else
Cells(i, ActiveCell.Column).Value = 0
End If
Next i
End Sub
我是VBA的新手,我无法理解如何将常量值与range("g2:g" & lastrow)
和("f2:f" & lastrow)
中的每个单元格进行比较。在我的情况下,常量值是一个活动单元格。例如,考虑以下公式:IF(AND($R$1<G2;$R$1>=f2);1;0
其中R$1$
是ROW 1中最后一个非空列的活动单元格。我需要用输出填充整个列(即activecell.column
)从这个公式出来。
但是我遇到了不匹配的错误:
If Range("f2:f" & lastrow) <= Val(CStr(rname.Value)) _
And Range("g2:g" & lastrow) > Val(CStr(rname.Value)) Then
Cells(i, ActiveCell.Column).Value = "1"
Else
Cells(i, ActiveCell.Column).Value = 0
End If
我从上一个问题中知道发生此错误是因为我正在尝试将单个值与值数组进行比较。如何解决这个问题?
答案 0 :(得分:0)
你必须使用
Range("F" & i)
你的代码中的。同样的事情适用于此类代码的其他实例。