【问题标题】:Return only filename in getopenfilename在 getopenfilename 中只返回文件名
【发布时间】:2013-11-29 07:59:43
【问题描述】:

有什么方法可以从这个语句中获取文件名?我正在尝试从该语句中获取文件名,以便继续进行编码..

基本上我正在尝试根据工作簿的名称打开多个工作簿并打开多个工作表。

        strWorkbookNameAndPath = Application.GetOpenFilename _
       (FileFilter:=strFilt, _
        FilterIndex:=intFilterIndex, _
        Title:=strDialogueFileTitle, _
        MultiSelect:=True)

       fileArraySize = UBound(strWorkbookNameAndPath, 1) 
       nameArr = Split(strWorkbookNameAndPath, "\")
       strName = nameArr(UBound(nameArr))
       Worksheets.Add().Name = strName

       For i = 1 To fileArraySize

       Set wkbImportedWorkbook = Workbooks.Open(strWorkbookNameAndPath(i))
       Set wksImportedWorksheet = wkbImportedWorkbook.Sheets("Sheet1")
       With wksImportedWorksheet
       lrow = .Range("A" & .Rows.count).End(xlUp).Row
       Set rngImportCopyRange = .Range("A1:A" & lrow).EntireRow
       rngImportCopyRange.Copy
       wksMasterWorksheet.Range("A" & Rows.count).End(xlUp).Offset(1, 0).PasteSpecial        xlPasteValues
End With
wkbImportedWorkbook.Close
Set wkbImportedWorkbook = Nothing
Set wksImportedWorksheet = Nothing
Next i

【问题讨论】:

标签: excel vba excel-2010


【解决方案1】:

添加此代码:

dim nameArr
dim strName as string

nameArr = Split(strWorkbookNameAndPath, "\")
strName = nameArr(UBound(nameArr))

编辑:

strWorkbookNameAndPath = Application.GetOpenFilename _
  (FileFilter:="", _
  FilterIndex:=0, _
  Title:="", _
  MultiSelect:=True)

fileArraySize = UBound(strWorkbookNameAndPath, 1)

For i = 1 To fileArraySize

  nameArr = Split(strWorkbookNameAndPath(i), "\")
  strName = nameArr(UBound(nameArr))
  Worksheets.Add().Name = strName

  Set wkbImportedWorkbook = Workbooks.Open(strWorkbookNameAndPath(i))
  Set wksImportedWorksheet = wkbImportedWorkbook.Sheets("Sheet1")
  With wksImportedWorksheet
    lrow = .Range("A" & .Rows.Count).End(xlUp).Row
    Set rngImportCopyRange = .Range("A1:A" & lrow).EntireRow
    rngImportCopyRange.Copy
    wksMasterWorksheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
  End With
  wkbImportedWorkbook.Close
  Set wkbImportedWorkbook = Nothing
  Set wksImportedWorksheet = Nothing
Next i

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    相关资源
    最近更新 更多