Excel密码和雕刻选项卡名称

Excel密码和雕刻选项卡名称,excel,vba,Excel,Vba,我正在设置一个宏以打开目录中的所有文件,并将每个文件中的某个选项卡复制到一个组合文件中。将它们合并到一个工作簿中。我有两个问题。首先,文件是受密码保护的,所以当我使用这一行时,它会打开文件 Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName) 然而,当它的密码保护失败。因此,我在结尾添加了以下内容,但仍然失败 Set gwkbInputdata = Workbooks.Open(gRnCT_File_L

我正在设置一个宏以打开目录中的所有文件,并将每个文件中的某个选项卡复制到一个组合文件中。将它们合并到一个工作簿中。我有两个问题。首先,文件是受密码保护的,所以当我使用这一行时,它会打开文件

Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName)
然而,当它的密码保护失败。因此,我在结尾添加了以下内容,但仍然失败

Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName),Password = "openfile"
第二期-当我在中复制标签页时,我想用我从中获取的文件名来命名它们。但是,文件名太长-因此我想将名称保留到第一个空格,例如Test file May 13=sheet name Test。如何使此代码正常工作

非常感谢您的帮助

完整代码如下:

*gRnCT_File_Loc=目录位置。 *gsInputFileName=文件名

Code to date:

Sub Pulldata()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Set gRwksconfigeration = Sheets(gcsConfigSheetName)
gRnCT_File_Loc = gRwksconfigeration.Range(CT_File_Loc)
gRnCT_Tab_Search = gRwksconfigeration.Range(CT_Tab_Search)
gsInputFileName = Dir(gRnCT_File_Loc)
Set gwkscurrent = ActiveWorkbook

For Each ws In ThisWorkbook.Worksheets
       If ws.Name <> gcsConfigSheetName Then ws.Delete
Next ws

Do
    On Error GoTo err:
        Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName)
    On Error GoTo 0

    On Error GoTo err1:
        With Sheets(gRnCT_Tab_Search)
    On Error GoTo 0

        End With

gsInputFileName = Dir
Loop Until gsInputFileName = vbNullString

Application.ScreenUpdating = True
Application.DisplayAlerts = True

Exit Sub

err:
    MsgBox ("No files or files in incorrect format in " & gRnCT_File_Loc)
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    Exit Sub
err1:
    MsgBox ("Sheet " & gRnCT_Tab_Search & " doesn't exist in file " & gsInputFileName)
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    Resume Next

End Sub
您缺少密码后的a:

Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName),Password = "openfile"
应该是:

Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName,Password:="openfile")
您可以使用split来解决第二个问题,使用空格作为分隔符

Split(str, " ")(0)
其中str是文件的原始名称,例如测试文件May 13

密码后缺少a:

Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName),Password = "openfile"
应该是:

Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName,Password:="openfile")
您可以使用split来解决第二个问题,使用空格作为分隔符

Split(str, " ")(0)

如果str是文件的原始名称,例如Test file May 13

有关获取文件名第一部分的第二个问题,请尝试:

if(instr(gsInputFileName," ") > 0
   then short_file_name=left(gsInputFileName,instr(gsInputFileName," ")-1)
   else short_file_name=gsInputFileName
   endif

有关获取文件名第一部分的第二个问题,请尝试:

if(instr(gsInputFileName," ") > 0
   then short_file_name=left(gsInputFileName,instr(gsInputFileName," ")-1)
   else short_file_name=gsInputFileName
   endif

非常感谢您的支持。非常感谢。Alistair-当我添加缺少的:我在买眼镜时-我得到一个编译错误:预期:此时语句结束,密码:=Test,似乎是问题所在,但我看不到。谢谢大家-终于找到了-没有一副眼镜不能修复的东西。非常感谢你们的支持。非常感谢你们的支持。非常感谢。Alistair-当我添加缺少的:我在买眼镜时-我得到一个编译错误:预期:此时语句结束,密码:=Test,似乎是问题所在,但我看不到。谢谢大家-终于找到了-没有一副眼镜不能修复的东西。非常感谢您的支持。