Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA存储表索引编号供以后使用_Excel_Vba - Fatal编程技术网

Excel VBA存储表索引编号供以后使用

Excel VBA存储表索引编号供以后使用,excel,vba,Excel,Vba,我使用此代码删除活动工作表,然后复制其他工作表,如何存储活动工作表索引号,以便使用它将复制的工作表移动到存储的索引号 Master_Work_Order.Visible = True Dim oldSheetName As String Dim Ws As Worksheet Dim oldTabColor Dim oldSheetIndexNumber 'Store oldSheetName = ActiveSheet.NAme oldTabColor = ActiveSheet.Tab

我使用此代码删除活动工作表,然后复制其他工作表,如何存储活动工作表索引号,以便使用它将复制的工作表移动到存储的索引号

Master_Work_Order.Visible = True


Dim oldSheetName As String
Dim Ws As Worksheet
Dim oldTabColor
Dim oldSheetIndexNumber

'Store
oldSheetName = ActiveSheet.NAme
oldTabColor = ActiveSheet.Tab.Color
' oldSheetIndexNumber = Store active sheet index number

ActiveSheet.Delete

Master_Work_Order.Copy After:=Sheets(ActiveSheet.Index)
Set Ws = ActiveSheet

'set new copied sheet name to previous ActiveSheet's name

Ws.NAme = oldSheetName
Ws.Tab.Color = oldTabColor
' Move active sheet to stored index number


Master_Work_Order.Visible = 2 'Makes sheet very hidden

如果我了解你的情况,这应该行得通。我只是以有限的方式进行了测试。.Copy方法应将新工作表放在正确的位置

Dim Ws As Worksheet
Dim oldTabColor
Dim oldSheetIndexNumber As Integer

'Store
oldSheetName = ActiveSheet.Name
oldTabColor = ActiveSheet.Tab.Color
oldSheetIndexNumber = ActiveSheet.Index

ActiveSheet.Delete

If ActiveWorkbook.Sheets.Count >= oldSheetIndexNumber Then
    ActiveWorkbook.Sheets("Sheet2").Copy before:=Sheets(oldSheetIndexNumber)
Else
    ActiveWorkbook.Sheets("Sheet2").Copy after:=Sheets(oldSheetIndexNumber - 1)
End If
Set Ws = ActiveSheet

'set new copied sheet name to previous ActiveSheet's name

Ws.Name = oldSheetName
Ws.Tab.Color = oldTabColor

如果我了解你的情况,这应该行得通。我只是以有限的方式进行了测试。.Copy方法应将新工作表放在正确的位置

Dim Ws As Worksheet
Dim oldTabColor
Dim oldSheetIndexNumber As Integer

'Store
oldSheetName = ActiveSheet.Name
oldTabColor = ActiveSheet.Tab.Color
oldSheetIndexNumber = ActiveSheet.Index

ActiveSheet.Delete

If ActiveWorkbook.Sheets.Count >= oldSheetIndexNumber Then
    ActiveWorkbook.Sheets("Sheet2").Copy before:=Sheets(oldSheetIndexNumber)
Else
    ActiveWorkbook.Sheets("Sheet2").Copy after:=Sheets(oldSheetIndexNumber - 1)
End If
Set Ws = ActiveSheet

'set new copied sheet name to previous ActiveSheet's name

Ws.Name = oldSheetName
Ws.Tab.Color = oldTabColor

Master\u Work\u Order.Copy after:=Sheets(oldSheetIndexNumber-1)
似乎工作正常,我不确定您的if语句用于什么。@luke当旧工作表索引为1时会发生什么?这就是为什么if语句。@luke,cyboashu有解释。无论在任何情况下,前后都不起作用。
Master\u work\u Order.Copy after:=Sheets(oldSheetIndexNumber-1)
似乎工作正常,我不确定您的if语句用于什么。@luke当旧工作表索引为1时会发生什么?这就是为什么if语句。@luke,cyboashu有解释。在任何情况下,之前和之后都不起作用。