我希望有人可以帮助我。我正在尝试创建一个宏来查看一个工作表中的单元格,以查看该单元格是否具有公式。如果它有一个公式,它在不同的工作表上的同一单元格中输入1,如果不是它输入0.这是我到目前为止但它给我一个编译错误:下一个没有。
Sub FormulaMap()
Dim r As Integer
Dim c As Integer
For c = 9 To 17
For r = 11 To 18
If Sheets("Data").Cells(c & r).HasFormula = True Then
Sheets("Map").Cells(c & r).Value = 1
Else: Sheets("Map").Cells(c & r).Value = 0
Next r
Next c
End Sub
感谢任何帮助。
答案 0 :(得分:1)
如@Nathan_Sav所述,您需要在调用下一个End If
和r
之前添加c
,还需要使用逗号分隔c
和{ {1}}函数中的{1}}。我还假设r
是列引用,Cells
是行引用?试试这个:
c
另请注意,VBA Integer类型的范围仅为-32,768到32,767。这就是为什么它建议使用Long(-2,147,483,648到2,147,483,647),特别是在经过行时。
答案 1 :(得分:0)
End If
结尾处没有If Then Else
。
答案 2 :(得分:0)
有一件事是Nathan_Sav所说的,但第二件事是你必须改变你的Cells
陈述,所以里面有两个论点。调用它的正确方法是
Cells(row, column)
所以在你的代码中它将是
Cells(r, c)
(如果r
表示行和c
- 列)
答案 3 :(得分:0)
您的代码应为
For c = 9 To 17
For r = 11 To 18
If Sheets("Data").Cells(c, r).HasFormula = True Then
Sheets("Map").Cells(c, r).Value = 1
Else
Sheets("Map").Cells(c, r).Value = 0
End If
Next r
Next c
答案 4 :(得分:0)
作为替代方案,您可以尝试这种方法...... 你可以通过不同的范围......
RenderTransform