在vba中导入部分名称的CSV文件

时间:2018-04-19 11:14:36

标签: vba excel-vba excel

首先,让我简要介绍一下。我想从用户提供的位置导入特定的CSV文件。我可以使用修复文件名导入它。

现在,我想导入一个每次更改一个文件名的CSV文件 例如。

  • Newdata_Files_LMBN_124587
  • Newdata_Files_LMBN_458965
  • Newdata_Files_LMBN_134654
  • Newdata_Files_LMBN_894354等......

我已为其编写代码,但它不起作用

Sub zzandand(Optional opt As String)

Application.ScreenUpdating = False

Dim compd1, compd2 As String
Dim ws As Worksheet
Dim rng As Range
Dim path As Variant
Dim tfr1, tfr2 As String

Set path = UserForm1.TextBox1

compd1 = path & "\" & Newdata_Files_ & "*" & ".csv"

If Dir(compd1, vbDirectory) = vbNullString Then
MsgBox ("The file Newdata_Files(csv) could not be found")
    Unload UserForm1
    End
Else
Workbooks.Open (compd1)
ActiveSheet.Activate
Sheets.Copy Before:=ThisWorkbook.Sheets(Sheets.Count)
ActiveSheet.Name = "compd2"
tfr1 = ActiveSheet.Range("A1").Value
ActiveSheet.Range("A1").Value = UCase(tfr1)
Workbooks("compd1").Close
End If

Application.ScreenUpdating = True

End Sub

1 个答案:

答案 0 :(得分:0)

未测试:

Sub zzandand(Optional opt As String)

    Dim compd1 As String
    Dim ws As Worksheet, wb As Workbook
    Dim path As Variant

    path = Trim(UserForm1.TextBox1)
    If Right(path, 1) <> "\" Then path = path & "\" '<<< ensure trailing "\"

    compd1 = Dir(path & "Newdata_Files_*.csv") '<<< any matches?

    If Len(compd1) = 0 Then '<<< no need for Dir here....
        MsgBox "The file Newdata_Files(csv) could not be found"
        Unload UserForm1
    Else
        Set wb = Workbooks.Open(path & compd1) '<<< use the full path!
        wb.Sheets(1).Copy _
               Before:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        wb.Close False 'close without saving

        Set ws = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        ws.Name = "compd2"
        ws.Range("A1").Value = UCase(ws.Range("A1").Value)

    End If

End Sub