如何将excel vba宏限制为一张工作表?

如何将excel vba宏限制为一张工作表?,vba,excel,Vba,Excel,接下来的问题是,我正在运行一个简单的宏,我希望在仍然能够处理其他工作簿或同一工作簿的其他工作表时运行该宏,而不需要在这些工作表上运行代码。这是密码 Sub Data_Recording() ' ' Data_Recording Macro ' Copy excel line with hyperlinks and paste values in first line of data recording area, insterting and moving old data dow

接下来的问题是,我正在运行一个简单的宏,我希望在仍然能够处理其他工作簿或同一工作簿的其他工作表时运行该宏,而不需要在这些工作表上运行代码。这是密码

Sub Data_Recording()
'
' Data_Recording Macro
' Copy excel line with hyperlinks and paste values in first line of data     
  recording area, insterting and moving old data down.
'

'
    Rows("5:5").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("B2:F2").Select
    Selection.Copy
    Range("B5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, 
    SkipBlanks _
    :=False, Transpose:=False
    alertTime = Now + TimeValue("00:00:20")
    Application.OnTime alertTime, "Data_Recording"
End Sub
我尝试将工作簿和工作表的名称放在每个区域或行选择之前,但我一定是做错了什么


谢谢

您需要调整代码,以便所有范围都符合
工作表
对象的要求,并且没有
。选择
。需要激活
语句


试试这个:

ThisWorkbook.Sheets("You Sheet").Rows("5:5").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ThisWorkbook.Sheets("You Sheet").Range("B2:F2").Copy
ThisWorkbook("You Workbook").Sheets("You Sheet").Range("B5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
alertTime = Now + TimeValue("00:00:20")
Application.OnTime alertTime, "Data_Recording"

请确保将上述代码放在工作表范围内

在VBA编辑器中,可以在“项目属性”窗口中看到“Microsoft Excel对象”。 展开它并双击要使用的工作表(确保选择了正确的工作簿)

在该代码编辑器中,输入上述相同的代码(无需给出工作表名称或工作簿名称)

它应该可以正常工作。

Public Sub MyMacro
Public Sub MyMacro
    If ActiveSheet.Name < "Safe" Then Exit Sub

    'rest of your macro here
End Sub
如果ActiveSheet.Name<“安全”,则退出Sub '这里是宏的其余部分 端接头
VBA为用户提供每个Excel对象,以便我们可以对其进行自定义。此外,根据问题,他希望他的代码是孤立的,应该只在特定的工作表上工作。因此,我认为最好将其隔离,因为您无法预测工作表名称或工作簿名称何时更改。如果是这样,除非手动修改新名称,否则代码将无效。小于等于?
Public Sub MyMacro
    If ActiveSheet.Name < "Safe" Then Exit Sub

    'rest of your macro here
End Sub