インターネットのどこにも似たようなものを見たことがないので、私には独特の問題があると思います。
私はビジネス アナリスト/アプリケーション開発者であり、他のユーザーの PC 上の Excel CSV ファイルから、ファイルを開いて中断することなく自動的にデータを収集したいと考えています。方法はありますか?
これが私がこれまでに持っているコードです:
Option Explicit
Dim MyDocuments As String, strFileName, myToday, origWorkbook, origWorksheet, strConnection
Dim row As Integer
Private Sub btnStart_Click()
MyDocuments = Environ$("USERPROFILE") & "\My Documents"
myToday = Format(Date, "mmddyy")
strFileName = "DataFile" & myToday & ".csv"
strConnection = "TEXT;" & MyDocuments & "\DataFolder\" & strFileName
origWorksheet = "DataFile" & myToday
row = 1
On Error Resume Next
row = Range("A1").End(xlDown).row + 1
With ActiveSheet.QueryTables.Add(Connection:=strConnection, Destination:=Range("$A$" & row))
.Name = "temp"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
私が言ったように、作業中に CSV ファイルを開きたくありません。データを収集している間も作業を続けられるように、これを舞台裏で行いたいと考えています。
私の最大のハングアップは、それが CSV ファイルであること、またはファイルが開いていないことだと思います。これを行う方法があれば、私に知らせてください。現在、範囲外エラーが発生しています。