Я читаю имена нескольких файлов в каталоге. Каждый файл имеет заголовок с пятью тире. Я хотел бы напечатать эти имена на листе с заголовками, уже разделенными тире и помещенными в отдельные ячейки.
Например, введите:
мари-любит-оранжевый-табби кошки-100
шелби ненавидит белых крылатых мотыльков-200
Вывод (где строки представляют ячейки):
Мари | любит | апельсин | табби | кошки | 100
шелби | ненавидит | белый | крылатый | моли | 200
Я не видел изящного способа печати одноразмерных массивов в ячейках (хотя мой путь не слишком изящен), и примеры, которые я мог найти, не циклически изменяли значения. Я попробовал один с простым A: E в качестве диапазона, но это напечатало то же имя файла по всей ячейке. Чтобы это исправить, я создал строку со значениями переменных, которые будут служить диапазоном, чтобы она печаталась только в этих ячейках и затем двигалась вниз по листу. A1: E1, затем A2: E2, ... и так далее.
Dim vaArray As Variant
Dim i As Integer
Dim oFile As Object
Dim oFSO As Object
Dim oFolder As Object
Dim oFiles As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(sPath)
Set oFiles = oFolder.Files
If oFiles.Count = 0 Then
file_list = False
Exit Function
End If
ReDim vaArray(1 To oFiles.Count)
Dim afterSplit() As String
Dim rangeString As String
Worksheets("filenames").Activate
i = 1
For Each oFile In oFiles
afterSplit = Split(oFile.Name, "-", 5)
rangeString = "A" + Str(i) + ":" + "E" + Str(i)
Range(rangeString).Value = afterSplit
i = i + 1
Next
Однако, это приводит к ошибке «Диапазон сообщений» объекта «_Global» failed »без печати чего-либо на листе. Я ценю любую помощь с этим.
Редактировать: Добавлен увеличенный код для ясности.