Excel 宏打开旧工作簿

Excel 宏打开旧工作簿,excel,vba,Excel,Vba,我使用的工作簿是旧工作簿的更新副本。当我在新工作簿中运行宏时,它似乎运行得很好,但它也会打开旧工作簿。我希望这不会发生 新工作簿名为LOG.xlsm 旧工作簿称为应用程序日志宏.xlsm。它与新工作簿位于同一文件夹中 我正在运行Excel 2016 请帮帮我,我想我需要更改代码以确保活动工作簿是LOG.xlsm 代码如下: Sub SortApps() ' ' SortApps Macro Application.Goto Reference:="AppsTable" ActiveWorkb

我使用的工作簿是旧工作簿的更新副本。当我在新工作簿中运行宏时,它似乎运行得很好,但它也会打开旧工作簿。我希望这不会发生

  • 新工作簿名为LOG.xlsm
  • 旧工作簿称为应用程序日志宏.xlsm。它与新工作簿位于同一文件夹中
  • 我正在运行Excel 2016
请帮帮我,我想我需要更改代码以确保活动工作簿是LOG.xlsm

代码如下:

Sub SortApps()
'
' SortApps Macro
Application.Goto Reference:="AppsTable"
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields. _
    Clear
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields. _
    Clear
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add _
    Key:=Range("AppsTable[NOTES]"), SortOn:=xlSortOnCellColor, Order:= _
    xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields _
    (1).SortOnValue
    .Pattern = xlPatternLinearGradient
    .Gradient.Degree = 0
    .Gradient.ColorStops.Clear
End With
With ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields _
    (1).SortOnValue.Gradient.ColorStops.Add(0)
    .Color = 16763391
    .TintAndShade = 0
End With
With ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields _
    (1).SortOnValue.Gradient.ColorStops.Add(1)
    .Color = 16738047
    .TintAndShade = 0
End With
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add _
    Key:=Range("AppsTable[NOTES]"), SortOn:=xlSortOnCellColor, Order:= _
    xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields _
    (2).SortOnValue
    .Pattern = xlPatternLinearGradient
    .Gradient.Degree = 180
    .Gradient.ColorStops.Clear
End With
With ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields _
    (2).SortOnValue.Gradient.ColorStops.Add(0)
    .Color = 3394611
    .TintAndShade = 0
End With
With ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields _
    (2).SortOnValue.Gradient.ColorStops.Add(1)
    .Color = 3407718
    .TintAndShade = 0
End With
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add( _
    Range("AppsTable[STAT]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
    SortOnValue.Color = RGB(204, 0, 102)
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add( _
    Range("AppsTable[STAT]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
    SortOnValue.Color = RGB(204, 153, 255)
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add _
    Key:=Range("AppsTable[T2]"), SortOn:=xlSortOnCellColor, Order:= _
    xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields _
    (5).SortOnValue
    .Pattern = xlPatternLinearGradient
    .Gradient.Degree = 270
    .Gradient.ColorStops.Clear
End With
With ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields _
    (5).SortOnValue.Gradient.ColorStops.Add(0)
    .Color = 14202006
    .TintAndShade = 0
End With
With ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields _
    (5).SortOnValue.Gradient.ColorStops.Add(1)
    .Color = 9592886
    .TintAndShade = 0
End With
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add( _
    Range("AppsTable[NOTES]"), xlSortOnCellColor, xlDescending, , xlSortNormal). _
    SortOnValue.Color = RGB(218, 238, 243)
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add( _
    Range("AppsTable[STAT]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
    SortOnValue.Color = RGB(242, 220, 219)
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add( _
    Range("AppsTable[RI DUE]"), xlSortOnFontColor, xlAscending, , xlSortNormal). _
    SortOnValue.Color = RGB(192, 0, 0)
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add( _
    Range("AppsTable[STAT]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
    SortOnValue.Color = RGB(247, 150, 70)
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add( _
    Range("AppsTable[STAT]"), xlSortOnCellColor, xlAscending, , xlSortNormal). _
    SortOnValue.Color = RGB(255, 235, 156)
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add _
    Key:=Range("AppsTable[APP DT]"), SortOn:=xlSortOnValues, Order:= _
    xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort.SortFields.Add _
    Key:=Range("AppsTable[SSN]"), SortOn:=xlSortOnValues, Order:=xlAscending _
    , DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Apps").ListObjects("AppsTable").Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
Range("K9").Select
ActiveWindow.SmallScroll Down:=21
Range("AppsTable[NOTES]").Select
ActiveWindow.SmallScroll Down:=-39
Selection.Rows.AutoFit
Range("A9").Select
End Sub

提前感谢您的建议!我相信这很简单,但这让我感到很困惑,因为(惊讶)我不知道自己到底在做什么“”

如果在创建新工作簿时从旧工作簿中复制了工作表,则新工作簿中可能存在对旧工作簿的内部引用。首先按照此处的说明排除这种可能性。

是否确实在新工作簿中运行宏?(例如,如果您有一个按钮来调用宏,而您将该按钮留在调用
'Application Log macro.xlsm'!sortaps
,则按下该按钮将要做的第一件事就是打开
Application Log macro.xlsm
)@YowE3K-想法不错,这正是问题所在。非常感谢!TYSM的帮助。原来问题是我使用了旧工作簿中的快速访问按钮来运行宏,但我认为您的建议将对我现在使用的另一个工作簿有所帮助。