私はこのコードを別の場所から適応させました。フォームのボタンをクリックすると、Excel スプレッドシートの特定のセル範囲 (C1:C500) 内の空でない行の数がわかります...
Sub ImportDataFromRange()
Dim excelapp As Excel.Application
Set excelapp = CreateObject("excel.application")
excelapp.Workbooks.Open (Application.CurrentProject.Path & "\MattExcelFile.xls")
Dim myrange As Range
Set myrange = excelapp.Sheets("Sheet1").Range("C1:C500")
Dim numberofrows As Integer
numberofrows = Excel.Application.WorksheetFunction.CountA(myrange)
MsgBox numberofrows
Debug.Print excelapp
excelapp.Quit
Set excelapp = Nothing
End Sub
Private Sub Command0_Click()
ImportDataFromRange
End Sub
MS-Access を開き、作成したボタンからこのコードを実行すると、最初は正しく機能しますが、その後は機能しません。MS-Access を閉じて再度開くと動作がリセットされるため、MS-Access を開いてから最初に実行したときは正常に動作しますが、その後は二度と動作しません。
最初の実行では、これはディメンションに格納された (正しい) データです。
excelapp
= "C:\Users\Matt\Desktop\MattExcelFile.xls"
numberofrows
= 4
その後の実行では、これはディメンションに格納された (誤った) データです。
excelapp
= "マイクロソフト エクセル"
numberofrows
= 500
同じMS-Accessセッション内でコードを複数回実行し、毎回次元で正しいデータを取得できるように、誰かがここでコードを手に入れることができますか? どうもありがとう。