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,似乎是问题所在,但我看不到。谢谢大家-终于找到了-没有一副眼镜不能修复的东西。非常感谢您的支持。