0

ここで基本的なことに苦労しています...

Excel VBA の使用: 範囲 (1 次元) から配列を作成する必要がありますが、プロセスでは空白を削除する必要があります。

コードが機能しません...

Sub ReadFilePaths()

Dim b As Long 'counter
Dim rPATHS As Range 'selected range containing file paths
Dim aTEMP As Variant 'initial array to be cleaned of blanks
Dim aFILEPATHS As Variant 'final array containing File Paths of those to be ReFlagged

Sheets("FILES").Select 'select ws where they are listed
Range("B3:B33").Select 'select range of them (30 files max)
Set rPATHS = Selection 'sets range rPATHS to the selection

aTEMP = rPATHS.Value 'Temp Array set to values in list

For b = LBound(aTEMP) To UBound(aTEMP)
        If aTEMP(b) = "" Then
        End If
     aFILEPATHS = aTEMP(b)
Next b
End Sub

私は今日、それらの日を過ごしています!どんな助けでも大歓迎です。

データ入力は

Element
C:\Test\myfile1.txt
C:\Test\myfile2.txt

E:\Folder1\Folder2\hisfile1.txt

F:\FolderA\herfile2.txt
C:\FolderC\zfileAV.txt

配列で出力

C:\Test\myfile1.txt
C:\Test\myfile2.txt
E:\Folder1\Folder2\hisfile1.txt
F:\FolderA\herfile2.txt
C:\FolderC\zfileAV.txt
4

2 に答える 2

2

範囲を使用して1次元配列を作成できないようです。

範囲を使用して配列を割り当てる場合は、2 次元配列を作成します - あなたの例ではaTEMP(1 to 31, 1 to 1)。小さな修正を加えて、このコードを試してください。

Sub ReadFilePaths()

Dim b As Long 'counter
Dim rPATHS As Range 'selected range containing file paths
Dim aTEMP() As Variant 'initial array to be cleaned of blanks
Dim aFILEPATHS() As Variant 'final array containing File Paths of those to be ReFlagged
Dim i As Long
Sheets("FILES").Select 'select ws where they are listed
Range("B3:B33").Select 'select range of them (30 files max)
Set rPATHS = Selection 'sets range rPATHS to the selection

aTEMP = rPATHS.Value 'Temp Array set to values in list

For b = LBound(aTEMP) To UBound(aTEMP)
        If aTEMP(b, 1) <> vbNullString Then
        ReDim Preserve aFILEPATHS(i)
        aFILEPATHS(i) = aTEMP(b, 1)
        i = i + 1
        End If
Next b

End Sub
于 2015-04-24T13:20:16.637 に答える