因此,从本质上来说,我从网站导出数据集,并且该数据集位于excel文件中。该文件始终以这样的名称命名:“ Task_State_(Pivot)_xxxxxx” X是数字的随机字符串。我所做的工作涉及打开2个excel文件,包括下载的文件并获取下载的文件(task_State_(Pivot)),然后将该数据复制并复制到我的其他excel文件中,该文件用作我的各种masterfile。我的问题是,如果由于末尾的数字字符串不知道工作簿的全名,该如何选择该工作簿?我不能真正激活工作簿,因为我没有全名,因为它总是在变化。有什么建议吗?
答案 0 :(得分:0)
Dim wb As Workbook
For Each wb In Application.Workbooks
If wb.Name <> "your_file_name" Then
'do whatever you want ot do with your other wb
End If
Next wb
答案 1 :(得分:0)
上面的答案是一个好的开始,但是我会添加一些内容,以允许用户在开始时一次确认正确的工作表名称:
注意:您可能打开了其他电子表格,或者如果您正在使用宏,则可能还打开了一个个人宏工作簿(在后台)-您不想写该宏。
创建一个全局变量来保存您今天正在工作的工作簿的名称,并且第一次代码尝试打开它时,请用户确认名称:
例如:Dim strGlobalNewWorkbook As String
在Michal Rosa建议的循环(以及if)中,放入执行此操作的代码:
If MsgBox("please confirm that you want to process workbook: " & wb.Name, vbOKCancel) = vbOK Then
strGlobalNewWorkbook = wb.Name
Exit Sub
End If
然后您可以使用以下格式从代码访问正确的工作簿: Application.Workbooks(strGlobalNewWorkbook).Name'例如:找回名字