これは初めての質問です。Access-VBAは、行をコピーする前に、開いているExcelワークブックのセルが空であるかどうかを確認します。
特定の行をあるブックから別のブックにコピーする必要がある作業で問題が発生しました。コピー部分は私が解決したかもしれないと信じていますが、私の問題は非常に簡単なものです。
コピーする行を決定する最初のワークブック内の4つの日付を確認する必要があります。問題が発生しているセルのチェックは、セルが空でないかどうかを確認することです。コードを実行するたびに、チェック時に不一致エラー13が発生します。
Dim XX As Excel.Application ----secondary workbook
Dim ws1 As Object
Dim ws As Object
Set XX = New Excel.Application
XX.DisplayAlerts = False
Set ws1 = XX.Workbooks.Add
ws1.Activate
Set ws = ws1.ActiveSheet
Set xl = New Excel.Application ----primary workbook
xl.DisplayAlerts = False
Set wb = xl.Workbooks.Open(FilePath)
For i = 2 To wb.Sheets("SHEET1").Range("Q65536").End(xlUp).Row --- i have the code looping through all rows of the primary workbook
Date1 = wb.Sheets("SHEET1").Cells(i, 12).Text
Date2= wb.Sheets("SHEET1").Cells(i, 14).Text
Date3= wb.Sheets("SHEET1").Cells(i, 13)
Date4 = wb.Sheets("SHEET1").Cells(i, 15) ----- everything up to here has no errors
If ((CDate(Date1) < Date) & (IsEmpty(Date3))) Then ---- error is always here, at Date3
wb.Rows(i).Copy ws.Rows(ws.Cells(ws.Rows.Count, 2).End(xlUp).Row + 1)
end if
wbはプライマリワークブックです(うまくいけば)からデータを取っています.WSはコピーしているワークブックです。
エラーが発生したのは、ifステートメントの空のチェックにあることが分かりました。私はそれを取り出して、小切手とコードを意図したとおりに進めてしまったからです。私はちょうどそれを修正する方法を見つけることができません。
私は文字列、整数、日付、およびバリアントからすべての日付変数を宣言しました。また、セルの値を範囲やセルとして.textまたは.valueまたは何もインポートしないでインポートしようとしました。その後、if文の中で、私はIsEmpty、Isnull、= ""、= 0、= nullをCDateに追加しようとしました。私は文字通り私が考えることができるすべての可能な組み合わせですべてのものを試しました。
次のような類似の質問へのリンクです:https://stackoverflow.com/questions/33421574/how-to-check-if-a-date-cell-in-excel-is-empty –
ありがとうこの質問を投稿する前に、私は昨日から解決策を探していました。私はあなたがすばやく見つけたことに恥ずかしく思っています。もう一度あなたに感謝します。 –