0

我目前正在尝试编写宏。

  • 我正在一个新的黑色工作簿中编写宏(这是要求的一部分),并且我在另一个工作簿中有很多数据。
  • 我需要使用宏来读取该不同工作簿中的数据并吐出每列遇到的错误并将其写入空白工作簿(我正在编写宏)。
  • 因此,对于每一列,假设有行号列表遇到错误(没有别的)。我正在尝试编写一个 If 语句来执行此操作,但我不断收到一条错误消息,指出“预期然后或转到”。

这是我到目前为止所拥有的:

If [Dataset1.xls]Data1!R2C1=53 AND [Dataset1.xls]Data1!R2C1=453 AND [Dataset1.xls]Data1!R2C1=953 Then

dataset1.xls 是保存所有数据的工作簿,Data1 是该工作簿中包含所有数据的工作表。我可能完全错误地访问了单独的工作簿。你们能帮忙吗。非常感谢您提前。

这是大部分代码:

Dim numrow As Long
Dim count As Long
count = 2

With Workbooks("Dataset1.xls").Sheets("Data1")
numrow = .Range("A1", .Range("A1").End(xlDown)).Rows.count

End With
Do Until count = numrow
If [Dataset1.xls]Data1!R2C1<>53 AND [Dataset1.xls]Data1!R2C1<>453 AND [Dataset1.xls]Data1!R2C1<>953 Then  

End If
count = count + 1
Loop
4

1 回答 1

0

你应该改变

If Workbooks("Dataset1.xls").Sheets("Data1").Cells(2, 1).Value <> 53 AND Workbooks("Dataset1.xls").Sheets("Data1").Cells(2, 1).Value <> 453 AND Workbooks("Dataset1.xls").Sheets("Data1").Cells(2, 1).Value <> 953 Then

代替:

If [Dataset1.xls]Data1!R2C1<>53 AND [Dataset1.xls]Data1!R2C1<>453 AND [Dataset1.xls]Data1!R2C1<>953 Then

问候

-- 完整代码:

range = Workbooks("Dataset1.xls").Worksheets("Data").Range("A65536").End(xlUp).Row

For i = 2 To range

If Workbooks("Dataset1.xls").Sheets("Data1").Cells(i, 1).Value <> 53 AND Workbooks("Dataset1.xls").Sheets("Data1").Cells(i, 1).Value <> 453 AND Workbooks("Dataset1.xls").Sheets("Data1").Cells(i, 1).Value <> 953 Then

End IF

Next i
于 2012-10-26T23:39:37.073 回答