私はすでに過去数時間、さまざまなソリューションとコードを見てきましたが、どれもうまくいきませんでした(VBAの初心者)。ロシア語の文字を使用する別のサイトからファイルを受け取りました。これらのファイルを既存のスプレッドシートの最後に使用した行の下にインポートし、データで Windows のキリル文字を使用する必要があります。
既存のスプレッドシートには列があります。データを既存の列見出しの下にインポートするためにデータをフォーマットする必要があることを知っていますか?
データはタブ化されていますが、現在、その上に見出しはありません。
インポートで機能するコードを見つけることができましたが、これはセル A1 に、別のシートではなく列のないマクロを持つシートに配置されます。どんな助けでも大歓迎です。
Sub DoThis()
Dim TxtArr() As String, I As Long
'TxtArr = BrowseForFile("C:\Users\rjoss\Desktop\SVY")
TxtArr = Split(OpenMultipleFiles, vbCrLf)
For I = LBound(TxtArr, 1) To UBound(TxtArr, 1)
Import_Extracts TxtArr(I)
Next
End Sub
Sub Import_Extracts(filename As String)
'
Dim Tmp As String
Tmp = Replace(filename, ".txt", "")
Tmp = Mid(Tmp, InStrRev(Tmp, "\") + 1)
'
Range("A50000").End(xlUp).Offset(1, 0).Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & filename _
, Destination:=Range("A50000").End(xlUp).Offset(1, 0))
.Name = Tmp
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "~"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveCell.EntireRow.Delete
End Sub
'code copied from here and modified to work
'http://www.tek-tips.com/faqs.cfm?fid=4114
Function OpenMultipleFiles() As String
Dim Filter As String, Title As String, msg As String
Dim I As Integer, FilterIndex As Integer
Dim filename As Variant
' File filters
Filter = "Text Files (*.txt),*.txt"
' Set Dialog Caption
Title = "Select File(s) to Open"
' Select Start Drive & Path
ChDrive ("C")
'ChDir ("c:\Files\Imports")
ChDir ("C:\Users\rjoss\Desktop\SVY")
With Application
' Set File Name Array to selected Files (allow multiple)
filename = .GetOpenFilename(Filter, FilterIndex, Title, , True)
' Reset Start Drive/Path
ChDrive (Left(.DefaultFilePath, 1))
ChDir (.DefaultFilePath)
End With
' Exit on Cancel
If Not IsArray(filename) Then
MsgBox "No file was selected."
Exit Function
End If
msg = Join(filename, vbCrLf)
OpenMultipleFiles = msg
End Function