標題:
[發問]
onaction="Macro",macro有參數如何寫呀
[打印本頁]
作者:
mhl9mhl9
時間:
2018-7-28 22:25
標題:
onaction="Macro",macro有參數如何寫呀
onaction="Macro",macro有參數如何寫呀
作者:
a5007185
時間:
2018-7-29 01:13
你可以把你的問題在具體一點的描述嗎?
這樣有點難回答你的問題,
如果你是指 Macro是一個變數的話,
直接把雙引號拿掉即可。
如果Macro是一個Sub要添加參數的話
Macro 變數A,變數B,變數C
如果Macro是一個Function要添加參數的話
Macro(變數A,變數B,變數C)
作者:
naruto018
時間:
2018-7-29 09:31
回復
1#
mhl9mhl9
是要問CommandBarButton.OnAction 的部分嗎?
作者:
mhl9mhl9
時間:
2018-7-29 13:28
回復
3#
naruto018
yes ,我真是想問commandbar的control中 onaction="巨集名稱" 這個巨集的參數任何寫?
作者:
mhl9mhl9
時間:
2018-7-29 13:56
回復
3#
naruto018
yes 問CommandBarButton.OnAction 的部分.
我做了個commandbar,有4個Button,執行同一個sub,只是參數分別是1,2,3,4.
當然最好是 onaction=sub名稱+參數,但不知如何寫,不得意求其次,我現在用application.caller(2),也管用.如下:
4個一樣 onaction="abcd""
sub abcd
xxx=application.caller(2)
巨集名 xxx
end sub
查到application.caller是個數組,有4個數,1,1,4105,0,第二數好像代表第幾個button,所以我用第二個數當參數
但究竟這4個數代表什麼,不清楚,也查不到,所以問題似乎解決了,但并不踏實.
作者:
naruto018
時間:
2018-7-30 07:34
回復
5#
mhl9mhl9
參考看看
Public Const B1 As String = "text-B1"
Public Const B2 As String = "text-B2"
Public Const B3 As String = "text-B3"
Public Sub abc()
With Application.CommandBars.Add("測試", msoBarTop, , True)
.Visible = True
With .Controls.Add(Type:=msoControlPopup) '參數代入數字
.Caption = "測試1"
With .Controls.Add(Type:=msoControlButton)
.Caption = "測試0"
.OnAction = "text" '沒代入參數
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "測試1-1"
.OnAction = "'text 1'" '代入參數會在原本最外圍的雙引號裡面分別加單引號
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "測試1-2"
.OnAction = "'text 1,2'" '不同參數用逗號分開
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "測試1-3"
.OnAction = "'text 1,2,3'"
End With
End With
With .Controls.Add(Type:=msoControlPopup) '參數代入文字
.Caption = "測試2"
With .Controls.Add(Type:=msoControlButton)
.Caption = "測試2-1"
.OnAction = "'text ""B1""'" '文字左右側分別加上兩個雙引號
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "測試2-2"
.OnAction = "'text ""B1"",""B2""'"
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "測試2-3"
.OnAction = "'text ""B1"",""B2"",""B3""'"
End With
End With
With .Controls.Add(Type:=msoControlPopup) '參數代入變數
.Caption = "測試3"
With .Controls.Add(Type:=msoControlButton)
.Caption = "測試3-1"
.OnAction = "'text B1'"
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "測試3-2"
.OnAction = "'text B1,B2'"
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "測試3-3"
.OnAction = "'text B1,B2,B3'"
End With
End With
End With
End Sub
Public Sub text(Optional Arg1 = "A1", Optional Arg2 = "A2", Optional Arg3 = "A3") '預設沒代入參數的預設值
MsgBox Arg1 & Chr(10) & Chr(13) & Arg2 & Chr(10) & Chr(13) & Arg3
End Sub
複製代碼
作者:
linyancheng
時間:
2018-7-30 16:29
將參數寫入.Parameter中,程序再引用.Parameter的值,
其實也可以.Tag代替,
也可以自訂變數,寫入變數,再引用變數,其實這樣比較靈活,我都自訂變數。
作者:
Scott090
時間:
2018-7-31 06:30
回復
7#
linyancheng
請大大寫一段程式的例子,以資模仿學習
謝謝
作者:
mhl9mhl9
時間:
2018-7-31 14:41
#2,#3,#6
謝謝各位幫忙,我求助的問題相信不少人都想知道,這兒我再簡單提一提:
當你做commandbarbutton,其中有一句"Onaction="sun名稱"",如果sub名稱有參數任何寫?
答案就是#6告訴的 Onaction="'sub名稱 參數'",就是雙引號+單引號+sub名稱+空格+參數+單引號+雙引號,就這麼簡單.
其他方法也提供我們不少思路,但就上述一條,最簡單最好用,再次謝謝大家!
作者:
Scott090
時間:
2018-8-4 06:42
actioncontrol 與 tag 的用法 參考 Microsoft 網頁如下:
https://msdn.microsoft.com/en-us/vba/office-shared-vba/articles/commandbars-actioncontrol-property-office#example
作者:
GBKEE
時間:
2018-8-7 13:57
回復
8#
Scott090
Option Explicit
Public a As String '一般模組的上的公用變數
Sub Ex() 'OnAction的程式碼
a = "EXCEL" '第一次按Button 1 的文字
ActiveSheet.Shapes.Range(Array("Button 1")).Select '需插入按鈕(表單控制項)
Selection.OnAction = "'Ex_Macro a'"
ActiveCell.Activate
End Sub
Sub Ex1()
a = "Ex_Macro"
End Sub
Sub Ex_Macro(ByRef q As String)
MsgBox q
Ex1 '第二次以後按 Button 1 的文字
End Sub
複製代碼
作者:
Scott090
時間:
2018-8-8 08:03
回復
11#
GBKEE
感謝 G大 的回覆。
workbook關閉後,再開啟,第一次執行按鈕後顯示 a="EXCEL"這個參數並未進來如下圖
[attach]29167[/attach]
請問,問題在哪裡
謝謝
作者:
GBKEE
時間:
2018-8-8 16:44
本帖最後由 GBKEE 於 2018-8-8 16:45 編輯
回復
12#
Scott090
workbook關閉後,再開啟時
ThisWorkbook模組上需有這些程式碼
Option Explicit
Private Sub Workbook_Open()
a="EXCEL"
End Sub
複製代碼
作者:
linyancheng
時間:
2018-8-8 22:39
回復
8#
Scott090
意指 onaction引用的程序不要使用引數,或將引數加上optional,
如此一來,功能表項目即不必被限制於固定引數,
而由引用的程序引用自訂變數,
如此一來,相同功能表在不同狀況下,可執行不一樣的程序過程。
作者:
Scott090
時間:
2018-8-9 08:38
回復
13#
GBKEE
謝謝 G大 指引
學習了
作者:
mhl9mhl9
時間:
2018-8-16 22:33
回復
10#
Scott090
actioncontrol 與 tag 的用法,10#提供網頁介紹很清楚,並不複雜,應該好好用.
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)