如果语句访问excel-vba中另一个工作簿中的数据

时间:2012-10-26 22:51:41

标签: excel vba excel-vba

我目前正在尝试编程宏。

  • 我在一个新的黑色工作簿中编写宏(这是要求的一部分),我在不同的工作簿中有很多数据。
  • 我需要使用宏来读取该不同工作簿中的数据并吐出每个列遇到的错误并将其写入空白工作簿(我正在编程宏)。
  • 因此,对于每一列,它假设有一个行号列表,遇到错误(没有别的)。我正在尝试编写一个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

1 个答案:

答案 0 :(得分: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