这看起来应该很简单,但我整个下午都收到了错误代码: 我有数据,我试图清理图形(它从保留系统导出,有时离开"空白"单元格实际上不是空白)。所以,我想我可以运行一个" IsNumeric"获取TRUE / FALSE值的公式,但现在我遇到了如何用我选择的值替换显示为空白的现有非空白的问题。
所有数据都在A列中,然后B列运行TRUE / FALSE公式:
=ISNUMBER(A1) 'from rows 1 to 4378
我希望能够在这些行上对C列进行宏写操作(至少,这是我提出的最好的,但它不起作用):
Sub WayEatFresh()
Dim dbsheet As Worksheet
Set dbsheet = ThisWorkbook.Sheets("Sheet2")
lr = dbsheet.Cells(Rows.Count,1).End(xlUp).Row
For x = 1 To lr
If dbsheet.Range(x,2).Value = True Then
dbsheet.Range(x,3).Value = dbsheet.Range(x,1).Value
Else dbsheet.Range(x,3).Value = 0
End If
Next x
End Sub
我不确定如何解决运行时错误"' 1004':方法'范围'对象' _Worksheet'失败"
任何指针?
根据@nwhaught提供的建议编辑原始代码,我在代码中添加了一些内容,现在它正在运行。这是最后一次迭代(对于为什么这对其他版本起作用的任何解释都是最受欢迎的!):
Sub WayEatFresh()
Dim x As Integer
With ThisWorkbook
For x = 1 To 4378
If Cells(x, 2).Value = True Then
Cells(x, 3).Value = Cells(x, 1).Value
Else
Cells(x, 3).Value = 0
End If
Next x
End With
End Sub
答案 0 :(得分:1)
您在Cells
内使用Range
符号。
Cells
的格式为([RowNumber],[ColNumber])
。
Range
的格式为([CellAddress],[CellAddress])
或(Cells(1,1),Cells(1,2))
。
对于您的代码,我建议您使用Range
替换Cells
。