范围循环数据清理

这似乎应该是简单的,但我已经得到了错误代码整个下午:我有数据,我正在试图清理图(它是从一个保留系统,有时留下“空白”单元格实际上是空白)导出。 所以,我想我可以运行一个“IsNumeric”公式来获得TRUE / FALSE值,但现在我遇到了如何用我select的值replace现有的非空白显示为空白的问题。

所有的数据都在列A中,然后列B的TRUE / FALSE公式运行:

=ISNUMBER(A1) 'from rows 1 to 4378 

我希望能够有一个macros写入列C沿着这些线(至less,这是最好的,我想出了,但它是行不通的):

 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”:object'_Worksheet'失败'的方法'范围'。

任何指针?


根据@nwhaught提供的build议编辑原始代码,我在代码中添加了一些东西,现在它正在工作。 这是最后的迭代(为什么这个工作在其他版本的任何解释是最受欢迎的!):

 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 

您在Range内使用Cells符号。

Cells的forms([RowNumber],[ColNumber])

Range具有([CellAddress],[CellAddress])(Cells(1,1),Cells(1,2))

对于你的代码,我build议用Cellsreplace你的Range