程序创建并打开随机文件名结尾的XLS工作簿。例如:工作,工作(0-500),工作(0-599)。此工作簿尚未保存。不需要保存工作簿。
Windows("Jobs(0-178)").Activate
只有文件名相同时,此VBA才有效。
我想创建Excel宏来将作业(0-500)中的数据复制到我的工作簿。
有人可以帮忙吗?
感谢。
更新:
目前,如果文件名是特定的,我的VBA只能读取wordbook名称,即“实验室中的作业”。如果输出文件名改变了,E.G:“实验室中的作业(0-123),宏无法读取它。
以下是我目前的VBA,
Sub StartMacro()
Windows("Jobs in Lab").Activate
Range("A1:P500").Select
Selection.Copy
Windows("Jobs in Lab - Macro.xlsm").Activate
End Sub
我尝试过使用
Sub Sample()
Dim wb As Workbook
For Each wb In Application.Workbooks
If wb.Name Like "Jobs in Lab*" Then
wb.Activate
Exit Sub
End If
Next wb
End Sub
但是,如果我先保存工作簿,这个VBA才有效。
答案 0 :(得分:0)
您可以尝试打开FileDialog以允许用户选择工作簿,打开它,并在代码中使用文件名
类似
function GetFilePath() as string
Set myFile = Application.FileDialog(msoFileDialogOpen)
With myFile
.Title = "Choose File"
.AllowMultiSelect = False
If .Show <> -1 Then
GetFilePath
Exit Sub
End If
GetFilePath= .SelectedItems(1)
End With
End function
并在您的代码中使用:
dim sFilename as string
sFileName=GetFilePath
if sFileName<>"" then
workbooks(sFileName).open
' copy the data
end if
你也可以使用:
sfilename = Application.GetOpenFilename
HTH 菲利普