繁体   English   中英

如何将引用的工作表更改为变量? 我想让它激活

[英]How do I change the worksheet referenced to be a variable? I want it to activate

我编写的宏 - 它从两个不同的电子表格中提取信息并将其全部格式化。 这些电子表格每个月都会更改。 如何获取“激活”命令来引用我打开的工作表,而不是在我录制此宏时打开的工作表? 其中一个命令如下所示:

Windows("273517_0273517M190831_08_31_2019_Toll Detail.csv").Activate

我试图复制并粘贴几行代码,但这个网站拒绝了它,说它的格式不正确。 因为它是一个功能齐全的宏的精确副本——我不知道它想要什么。

第 4 行中的“...Toll Detail.csv”文件需要成为一个变量,因为它每月都会发生变化。 这个文件在我录制的宏中被多次引用。 我需要能够输入 go 并以您建议的任何方式更改它们。 我对 VBA 完全陌生,所以请尽可能地把它哑巴。 :) 谢谢!

我建议在 sub 的开头声明一个变量,如下所示:

Dim strFile As String
strFile = "273517_0273517M190831_08_31_2019_Toll Detail.csv"

在整个 sub 中,您可以引用该变量,因此在代码中存在工作簿名称的每个实例中,将其替换为strFile ,如下所示:

Windows(strFile).Activate

这样,您只需为整个过程更新一次。 可能会有更优雅的解决方案,但需要更多关于用例的信息。

您可以使用 GetOpenFileName 到 select 并每次打开您的文件。 以下是供您参考的代码:

Sub OpenFile()
Dim myFile As String
Dim Wb As Workbook

myFile = Application.GetOpenFilename("CSV Files (*.csv), *.csv")

'Exit if no file selected
If myFile = "False" Then
    MsgBox "No file selected!"
    Exit Sub
End If

'Open the file
Set Wb = Workbooks.Open(myFile)
'Do what you want with the file here onward
'
'
'
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM