excel宏前关闭事件

时间:2011-05-18 00:09:11

标签: excel excel-vba vba

我使用以下宏将文本转换为所有值的数字。 由于链接服务器正在加载xls,格式搞砸了。 列已经被格式化,例如,会计,百分比,数字等等,但即使如此 一切都保存为文本。

所以我决定在关闭工作簿之前运行宏。 宏是这样的:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Cells.Select
  Range("D1").Activate
  Cells.SpecialCells(xlCellTypeLastCell).Offset(1, 1).Copy
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationAdd
  With Selection
    .VerticalAlignment = xlTop
    .WrapText = False
  End With
  ActiveWorkbook.SaveAs "test.xls"
  ActiveWorkbook.Close 
End Sub

但问题是,它弹出窗口询问我是否要保存更改, 我该如何解决这个问题。

上面的宏需要更长时间才能执行!!!

我有固定的列(直到D1)但是有条件的行。

有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

  

但问题是,它弹出窗口   问我是否想保存更改,如何   我可以解决这个问题。

ActiveWorkbook.Saved = True之后加入ActiveWorkbook.SaveAs "test.xls"。还有一些其他选项here(涉及抑制警报,但也可能影响任何其他打开的工作簿)。

选择您想要的任何列:

Sub ConvertToText()
   Dim xCell As Range
   Range(Cells(1, 1), Cells(1, 1).End(xlDown)).Select 'does the first column
   For Each xCell In Selection
     xCell.Value = CDec(xCell.Value)
   Next xCell
End Sub