繁体   English   中英

VBA 宏按钮放置在工作表 1 中,用于在隐藏的工作表 2 中运行宏

[英]VBA Macro button placed in worksheet 1 to run macro inside hidden worksheet 2

如果此列中的任何单元格值 = ID,我确实有一个删除列“A”的代码。 它工作正常。 我设法使用放置在同一工作簿的其他工作表上的按钮放置另一个代码来运行此宏(存储在工作表“Remove_Column_A”中)。 它工作正常。

我遇到的问题是:

  1. 我想一直隐藏这个工作表,每当我隐藏它时 - 宏显示错误 1004
  2. 我还希望,在使用按钮运行宏后,UI 将保留在放置按钮的同一个工作表上,并且工作表“Remove_Column_A”被关闭并隐藏。
Sub Remove_column_A_if_contains_ID_macro_run_from_another_sheet()
    'below code will run macro inside worksheet "Paste SM" using button on another worksheet.

    Dim ws As Worksheet
    Set ws = Sheets("Paste SM")
    ws.Select
  
    Application.ScreenUpdating = False
  
    'below code will remove column A if any cell value = ID
    Set P = Range("A1:A1")
    For Each cell In P
        If cell.Value = ID Then cell.EntireColumn.Delete
    Next cell
End Sub

不要使用Select - 相反,使用Worksheet object 完全限定Range

Sub Remove_column_A_if_contains_ID_macro_run_from_another_sheet()
'below code will run macro inside worksheet "Paste SM" using button on another worksheet.

    Dim ws As Worksheet
    Set ws = Sheets("Paste SM")
 
    Application.ScreenUpdating = False
  
    'below code will remove column A if any cell value = ID

    Set P = ws.Range("A1:A1")
    For Each cell In P
      If cell.Value = ID Then cell.EntireColumn.Delete
    Next cell
End Sub

在仅包含 1 个单元格的范围内循环似乎有点奇怪,但此代码可能比您的帖子中的内容更多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM