1
我有一个当前创建新工作表的宏,并将另一个excel文件导入到此新工作表中。如何在使用宏将数据文件导入新选项卡时提示用户选择文件?
此表中的数据不是拉入工作簿的其他区域。
正在导入的文件将不断具有不同的文件名。如何调整下面的代码以提示用户选择文件? (目录不会改变)。
子ImportDemand() Sheets.Add
Sheets(2).Select
Sheets(2).Name = "ImportedDemand"
Range("E42").Select
With ActiveSheet.QueryTables.Add(Connection:=Array(_
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=\\Folder\ImportFile_2011.04.05.xls;Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System d" _
, _
"atabase="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;" _
, _
"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create Sys" _
, _
"tem Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Repli" _
, "ca Repair=False;Jet OLEDB:SFP=False"), Destination:=Range("A1"))
.CommandType = xlCmdTable
.CommandText = Array("_All_Demand$")
.Name = "ImportFile_2011.04.05"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = _
"\\Folder\ImportFile_2011.04.05.xls"
.Refresh BackgroundQuery:=False
End With
末次
FileDialog对象如何适合我当前的代码?当手动执行文件导入时,我需要选择将要导入的excel文件中的选项卡。在这种情况下,“_All_Demand $”。需要哪些额外的代码---我需要包含哪些Excel才能对选定的数据源执行操作? – Jon 2011-04-06 14:05:48
那么,在你的代码中你写'.SourceDataFile =“\\ Folder \ ImportFile_2011.04.05.xls”'。我认为这是你想提示用户的地方,对吧?只需用上面的任一示例替换该行即可。并阅读[GetOpenFilename](http://msdn.microsoft.com/en-us/library/aa195878%28v=office.11%29.aspx)和/或[FileDialog](http:// msdn)上的VBA帮助。 microsoft.com/en-us/library/aa195744%28v=office.11%29.aspx)。 – 2011-04-06 19:49:21
至于选择标签,这是一个完整的其他问题。你为什么不问一个新的问题,以避免拥挤这个问题。仅供参考,如果您觉得有用,请记住接受此答案。 – 2011-04-06 19:51:14