0

現在、マクロをプログラムしようとしています。

  • 新しい黒いワークブック (これは要件の一部です) にマクロを書いていますが、別のワークブックに大量のデータがあります。
  • マクロを使用して、その別のワークブックのデータを読み取り、各列で発生したエラーを吐き出し、それを空白のワークブック (マクロをプログラミングしている) に書き込む必要があります。
  • したがって、各列には、エラーが発生した行番号のリストがあると想定されます (他には何もありません)。これを行うための If ステートメントを作成しようとしていますが、「expected then or go to」というエラー メッセージが表示され続けます。

これは私がこれまでに持っているものです:

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 に答える