[英]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.