繁体   English   中英

VBA excel:从多个文件复制特定的单元格和列

[英]VBA excel: Copy specific cells and columns from multiple files

我正在尝试将多个文件中的特定单元格和 3 列复制到另一个电子表格上的单个列中。

名为“导入”的部分只是允许选择多个文件。 “Datacopy”部分应复制所需的值。

Sub import()
Dim oFileDialog As FileDialog

    Set oFileDialog = Application.FileDialog(msoFileDialogFilePicker)
    oFileDialog.AllowMultiSelect = True
    oFileDialog.InitialFileName = "C:\Users\L18938\Desktop\New_folder"    ' can set your default directory here

    oFileDialog.Show

    Dim iCount As Integer
    For iCount = 1 To oFileDialog.SelectedItems.Count
        Call Datacopy(oFileDialog.SelectedItems(iCount))
    Next

End Sub

Public Function Datacopy(strPath As String)
Dim filePath As String
Dim FileNum As Integer

filePath = strPath

Dim startDate As String
If Range("A2").Value <> "" Then
    Range("A1").End(xlDown).Offset(1, 0).Select
Else:
    Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Offset(1, 0).Select
End If
currentRow = 0
rowNumber = 0

Open filePath For Input As #1

'EOF(1) checks for the end of a file
Do Until EOF(1)
   
        If rowNumber = 0 Then
            startDate = lineitems(2)
        End If
        If rowNumber > 18 And item <> "" Then
      
                ActiveCell.Offset(currentRow, 0) = startDate
                ActiveCell.Offset(currentRow, 1) = lineitems(0)
                ActiveCell.Offset(currentRow, 2) = lineitems(1)
                ActiveCell.Offset(currentRow, 3) = lineitems(2)
                  
                currentRow = currentRow + 1
            End If
        End If
   
    Next item
 rowNumber = rowNumber + 1
Loop
Close #1

End Function

当我运行它时,我收到错误“子或函数未定义”。 我瞄准的细胞是:

  • C1 -> 是一个日期,在每个文件中都不同,要复制到 A 列中
  • 列A18:A、B18:B、C18:C -> 分别是要复制到B、C、D 列中的数据。

复制多个文件很重要,因为我有超过 180 个。

您的问题是“startDate = lineitems(2)”。 您的代码中没有任何内容为“lineitems”分配任何类型的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM