[英]Worksheet_change: i do not want it to activate when value in cell does not change
[英]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.