Vba application.run(宏,Arg1,Arg2)
我谨请求就以下问题提供协助: 我试图运行一个运行多个宏的宏,但它基于以下两个字符串:Vba application.run(宏,Arg1,Arg2),vba,excel,Vba,Excel,我谨请求就以下问题提供协助: 我试图运行一个运行多个宏的宏,但它基于以下两个字符串: Sub ExportDatatoCountriesSheets() Dim shtnme As String Dim country As String ' United States shtnme = "US" country = "United States" ' ClearLatestData Application.Run "ClearLate
Sub ExportDatatoCountriesSheets()
Dim shtnme As String
Dim country As String
' United States
shtnme = "US"
country = "United States"
' ClearLatestData
Application.Run "ClearLatestData"
' FilterExportDataByCountry
Application.Run "FilterExportDataByCountry"
' Japan
shtnme = "JP"
country = "Japan"
' ClearLatestData
Application.Run "ClearLatestData"
' FilterExportDataByCountry
Application.Run "FilterExportDataByCountry"
End Sub
'==============================================================
Sub ClearLatestData()
Dim shtnme As String
Dim country As String
Sheets(CStr(shtnme)).Activate
Columns("A:Z").Select
Selection.Clear
End Sub
'==============================================================
Sub FilterExportDataByCountry
Sheets("WEEKLY DATA").Select
ActiveSheet.Range("$A$1:$G$240").AutoFilter Field:=3, Criteria1:=CStr(country)
Columns("A:G").Select
Selection.Copy
Sheets(CStr(shtnme)).Activate
Range("A1").Select
ActiveSheet.Paste
然而,我不断地犯错误。基本上,我希望在输入代码并按应用程序运行其他宏时,将ExportDatatoCountriesSheets
宏设置为重复。运行
我已经搜索过了,最接近的解决方案是使用参数运行宏,但当我定义参数时,宏无法正常运行,并出现错误
Application.Run (ClearLatestData, shtnme = "US", country = "United States")
如有可能,请告知 要调用“ClearLatestData”宏(Sub
),您需要将两个参数添加到接收Sub
)。因此,语法应该是:
Sub ClearLatestData(shtnme As String, country As String)
在子ClearLatestData
中,您将删除声明字符串的两行变量:
Dim shtnme As String
Dim country As String
要使用shtnme
和country
调用Sub-ClearLatestData
,请使用:
Application.Run "ClearLatestData", shtnme, country
或者,“更干净”的较短版本:
ClearLatestData shtnme, country
代码
Sub ExportDatatoCountriesSheets()
Dim shtnme As String
Dim country As String
' United States
shtnme = "US"
country = "United States"
' ClearLatestData
ClearLatestData shtnme, country ' <-- call the MACRO
' FilterExportDataByCountry
Application.Run "FilterExportDataByCountry"
' Japan
shtnme = "JP"
country = "Japan"
' ClearLatestData
ClearLatestData shtnme, country ' <-- call the MACRO
' FilterExportDataByCountry
Application.Run "FilterExportDataByCountry"
End Sub
' ================================================================
Sub ClearLatestData(shtnme As String, country As String)
Sheets(CStr(shtnme)).Activate
Columns("A:Z").Select
Selection.Clear
End Sub
您可以使用一行代码(由于不使用Activate
和select
,因此速度会更快):
工作很有魅力,先生。谢谢你的帮助!非常感谢。
Sheets(CStr(shtnme)).Activate
Columns("A:Z").Select
Selection.Clear
Sheets(shtnme).Columns("A:Z").Clear