макрос Excel перед закрытием события - PullRequest
1 голос
/ 18 мая 2011

Я использую следующий макрос для преобразования текста в числа для всех значений.Поскольку связанный сервер загружает 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 голосов
/ 18 мая 2011

Но дело в том, что всплывает окно спросить, хочу ли я сохранить изменения, Как можно это исправить.

Добавить ActiveWorkbook.Saved = True после ActiveWorkbook.SaveAs "test.xls". Есть несколько других вариантов здесь (включая подавление предупреждений, но это может повлиять и на любые другие открытые рабочие книги).

Выберите любой столбец, который вы хотите:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...