首页 > 解决方案 > 在特定工作表/Excel 上调用宏

问题描述

我想在特定工作表上运行宏,在我的情况下,工作表称为“平板电脑”。

如果“Tabelle1”中的单元格值发生变化,我想在“Tablet”表中运行此宏。

我的 Tabelle1 中的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$2" Then
        Call Delete_OptionB1
    End If
End Sub

这部分有效。

宏代码:

Sub Delete_OptionB1()
'
' Delete_OptionB1 Makro
'
     With Worksheets("Tablet")
    .Range("M2:AD2").Select
     Selection.ClearContents
    End With
End Sub

这不会完成这项工作。有什么建议我如何让它工作吗?

标签: excelvbaexcel-2010

解决方案


在您的代码中使用 with 块

 With Worksheets("Tablet")
.Range("M2:AD2").Select
 Selection.ClearContents
End With

您正在选择.Range("M2:AD2").Select,但随后清除任何工作表上的选择内容,当您Delete_OptionB1. 更改为包含一个 . - .Selection.ClearContents

更好的是,摆脱或With...End With完全Select摆脱。一行就可以完成所有工作:

Sub Delete_OptionB2()
'
' Delete_OptionB1 Makro
'
    Worksheets("Tablet").Range("M2:AD2").ClearContents
End Sub

推荐阅读