VBA: сохранение значений кросс-табличных формул Excel в csv

Используя другие потоки, я перегнал сценарий VBA для сохранения каждого листа книги Excel в отдельный файл CSV. Один из моих листов содержит формулы над данными на другом листе. Ячейки с этими формулами сохраняются как REF!s, и я не смог понять, как использовать .Value для решения проблемы (я просто хочу экспортировать значения в CSV).

Вот ядро ​​моего скрипта (я пропустил некоторые vars defns и другой код настройки/очистки)

Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(strApp+sFullPath)
oBook.Application.DisplayAlerts = FALSE
For Each objws In oBook.Sheets  
  objws.Copy  
  With objws.UsedRange
    .Value = .Value
  End With
  sheetName = Replace(objws.Name, " ", "")
  toName = strApp & sFilename & "-" & sheetName & ".csv"
  objws.SaveAs toName, 6
  oExcel.ActiveWorkbook.Close False  
Next 

person user3100551    schedule 08.02.2014    source источник


Ответы (1)


Вам нужно изменить его на значения, прежде чем копировать

With objws.UsedRange
   .Value = .Value
End With
objws.Copy

Затем вы можете закрыть исходную книгу без сохранения.

person Siddharth Rout    schedule 08.02.2014