我使用以下宏将文本转换为所有值的数字。 由于链接服务器正在加载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)但是有条件的行。
有人可以帮我解决这个问题。
答案 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