使用命令按钮更改多个单元格值
Changing multiple cells values using a command Button
我想弄清楚如何将 3 个不同工作表上的 3 个单元格更改为与命令按钮标题相同的值。如果只有一个命令,我设法让它工作,但似乎无法让它在多个命令上工作。
Private Sub CmdSME100_Click()
Worksheets("Calculator").Range("I1") = Me.CmdSME100.Caption
Worksheets("Tariff Matrix").Range("A1") = Me.CmdSME100.Caption
Worksheets("Bolt-On Matrix").Range("A1") = Me.CmdSME100.Caption
End Sub
就目前而言,这是我要开始工作的代码。而且我似乎无法弄清楚为什么它不能在所有不同的工作表上工作。
我需要它作为我要求代码更改然后触发自动过滤器的单元格。
任何建议将不胜感激。
谢谢
设置一个 sheet 变量来访问它们
Private Sub CmdSME100_Click()
Dim ws As Excel.Worksheet
Set ws = Application.Worksheets(1)
ws.Range("I1") = Me.CmdSME100.Caption
Set ws = Application.Worksheets(2)
ws.Range("A1") = Me.CmdSME100.Caption
Set ws = Application.Worksheets(3)
ws.Range("A1") = Me.CmdSME100.Caption
End Sub
如果您的作品sheet不在同一索引中,您可以按名称搜索它们。
代码看起来像这样。
'Find the worksheet named *BBCOV*
iFoundWorksheet = 0
For iIndex = 1 To Application.ActiveWorkbook.Worksheets.Count
Set ws = Application.Worksheets(iIndex)
If UCase(ws.Name) = "BBCOV-PURGED" Then
iFoundWorksheet = iIndex
Exit For
End If
Next iIndex
If iFoundWorksheet = 0 Then
MsgBox "No worksheet was found with the name BBCOV-PURGED (this is not case sensetive). Aborting."
GoTo Abort
End If
Set ws = Application.Worksheets(iFoundWorksheet)
ws.Activate
也许你可以试试 "activating" 床单。考虑到 "Calculator" 是 Sheet1,"Tariff Matrix" 是 Sheet2,"Bolt-On Matrix" 是 Sheet 3;
Private Sub CmdSME100_Click()
Sheet1.Activate
Sheet1.Range("A1") = Me.CmdSME100.Caption
Sheet2.Activate
Sheet2.Range("A1") = Me.CmdSME100.Caption
Sheet3.Activate
Sheet3.Range("A1") = Me.CmdSME100.Caption
End Sub
我不认为你能像那样抓住标题。
试试这个:
ActiveSheet.Buttons(Application.Caller).Caption
所以...
Private Sub CmdSME100_Click()
Worksheets("Calculator").Range("I1") = ActiveSheet.Buttons(Application.Caller).Caption
Worksheets("Tariff Matrix").Range("A1") = ActiveSheet.Buttons(Application.Caller).Caption
Worksheets("Bolt-On Matrix").Range("A1") = ActiveSheet.Buttons(Application.Caller).Caption
End Sub
我想弄清楚如何将 3 个不同工作表上的 3 个单元格更改为与命令按钮标题相同的值。如果只有一个命令,我设法让它工作,但似乎无法让它在多个命令上工作。
Private Sub CmdSME100_Click()
Worksheets("Calculator").Range("I1") = Me.CmdSME100.Caption
Worksheets("Tariff Matrix").Range("A1") = Me.CmdSME100.Caption
Worksheets("Bolt-On Matrix").Range("A1") = Me.CmdSME100.Caption
End Sub
就目前而言,这是我要开始工作的代码。而且我似乎无法弄清楚为什么它不能在所有不同的工作表上工作。
我需要它作为我要求代码更改然后触发自动过滤器的单元格。
任何建议将不胜感激。
谢谢
设置一个 sheet 变量来访问它们
Private Sub CmdSME100_Click()
Dim ws As Excel.Worksheet
Set ws = Application.Worksheets(1)
ws.Range("I1") = Me.CmdSME100.Caption
Set ws = Application.Worksheets(2)
ws.Range("A1") = Me.CmdSME100.Caption
Set ws = Application.Worksheets(3)
ws.Range("A1") = Me.CmdSME100.Caption
End Sub
如果您的作品sheet不在同一索引中,您可以按名称搜索它们。
代码看起来像这样。
'Find the worksheet named *BBCOV*
iFoundWorksheet = 0
For iIndex = 1 To Application.ActiveWorkbook.Worksheets.Count
Set ws = Application.Worksheets(iIndex)
If UCase(ws.Name) = "BBCOV-PURGED" Then
iFoundWorksheet = iIndex
Exit For
End If
Next iIndex
If iFoundWorksheet = 0 Then
MsgBox "No worksheet was found with the name BBCOV-PURGED (this is not case sensetive). Aborting."
GoTo Abort
End If
Set ws = Application.Worksheets(iFoundWorksheet)
ws.Activate
也许你可以试试 "activating" 床单。考虑到 "Calculator" 是 Sheet1,"Tariff Matrix" 是 Sheet2,"Bolt-On Matrix" 是 Sheet 3;
Private Sub CmdSME100_Click()
Sheet1.Activate
Sheet1.Range("A1") = Me.CmdSME100.Caption
Sheet2.Activate
Sheet2.Range("A1") = Me.CmdSME100.Caption
Sheet3.Activate
Sheet3.Range("A1") = Me.CmdSME100.Caption
End Sub
我不认为你能像那样抓住标题。
试试这个:
ActiveSheet.Buttons(Application.Caller).Caption
所以...
Private Sub CmdSME100_Click()
Worksheets("Calculator").Range("I1") = ActiveSheet.Buttons(Application.Caller).Caption
Worksheets("Tariff Matrix").Range("A1") = ActiveSheet.Buttons(Application.Caller).Caption
Worksheets("Bolt-On Matrix").Range("A1") = ActiveSheet.Buttons(Application.Caller).Caption
End Sub