如何使用Excel中的另一个按钮在另一个工作表中调用一个按钮?

时间:2020-06-01 12:46:41

标签: excel vba

我在Sheet1中有一个命令按钮,我想使用Sheet2中的按钮(窗体控件)来激活它。

我已经在Module1上写过(Sheet1中几乎与命令按钮相同的代码)

Function DataUpdate()
If (validateVer() = False) Then
    Exit Function
End If

Dim AsCn, AsRs, SQL
Dim x, y, WDATE, NGQTY, FAQTY, RWQTY, RNQTY, TotalCell, TotalCellx
Dim FA_TBL As Variant   ' (y, x)
Dim RW_TBL As Variant   ' (y, x)
Dim RN_TBL As Variant   ' (y, x)
Dim NG_TBL As Variant   ' (y, x)


'Sheet => Table
Sheet1.Range("C2:GS2").Select
Selection.ClearContents
FA_TBL = Sheet1.Range("A2:GS2")
Sheet1.Range("C4:GS4").Select
Selection.ClearContents
RW_TBL = Sheet1.Range("A4:GS4")
Sheet1.Range("C5:GS5").Select
Selection.ClearContents
RN_TBL = Sheet1.Range("A5:GS5")
Sheet1.Range("A9:GS208").Select
Selection.ClearContents
Sheet1.Range("C9").Select
NG_TBL = Sheet1.Range("A8:GS208")

...

Sheet1.Range("A2:GS2") = FA_TBL
Sheet1.Range("A4:GS4") = RW_TBL
Sheet1.Range("A5:GS5") = RN_TBL
Sheet1.Range("A8:GS208") = NG_TBL

...

Sheet1.Range("A8:" & TotalCellx & "100").Select
Selection.Sort Key1:=Range(TotalCellx & "9"), Order1:=xlDescending, Header:=xlGuess _
    , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    SortMethod:=xlPinYin
Sheet1.Range("C9").Select
End Function

我已经在Module2上写过(Sheet2上表单控制按钮的代码):

Sub Command1_Click()
Sheet1.Range("C8:GF8").Value = Sheet1.Range("C240:GF240").Value
Sheet1.Range("B7").Value = Sheet1.Range("B240").Value
r = DataUpdate()
End Sub

但是,我得到了

“运行时错误'1004':Range类的选择方法失败”。

有什么方法可以将Sheet1上的命令按钮调用或链接到Sheet2上的表单控制按钮?

1 个答案:

答案 0 :(得分:1)

在Sheet1中

Public Sub ClickMe()
   MsgBox "You Clicked"
End Sub

在Sheet2 CommandButton中,单击“代码”

Private Sub CommandButton1_Click()
   Sheets("Sheet1").ClickMe
End Sub

公开例行使得可以从表格外部对其进行调用