Я создаю Delmia Vbscript, который экспортирует некоторые данные в файл Excel. Каждый раз, когда я запускаю эту программу, он должен добавить новый рабочий лист в один и тот же файл Excel, добавив новое значение в отдельную таблицу. Проблема моего кода заключается в том, что каждый раз, кроме первого запуска программы, Woorksheet Object Nothing, и значения не сохраняются в файле Excel.Vbscript Добавить новый лист не работает
Option Explicit
Dim objGEXCELapp As Excel.Application
Dim objGEXCELwkBk As Excel.Workbook
Dim objGEXCELSh As Excel.Worksheet
Dim strFileName As String
Dim strNewFilePath As String
Sub CATMain()
StartEXCEL
Dim i
For i = 0 To body.NumberOfSegments - 1
Dim segment As SWKSegment
Set segment = body.GetSegment(i)
WriteInExcel i + 1, 1, segment.Name
WriteInExcel i + 1, 2, segment.FullName
WriteInExcel i + 1, 3, segment.PositionX
WriteInExcel i + 1, 4, segment.EndPositionX
WriteInExcel i + 1, 5, segment.PositionY
WriteInExcel i + 1, 6, segment.EndPositionY
WriteInExcel i + 1, 7, segment.PositionZ
WriteInExcel i + 1, 8, segment.EndPositionZ
WriteInExcel i + 1, 9, segment.Length
Next
Dim file
file = Dir("C:\temp\ExportData.xls")
If Len(file) = 0 Then
objGEXCELwkBk.SaveAs strNewFilePath
Else
objGEXCELwkBk.Save
End If
objGEXCELwkBk.Close
objGEXCELapp.Quit
End Sub
Здесь есть метод для создания нового woorksheet
Sub StartEXCEL()
Err.Clear
On Error Resume Next
Set objGEXCELapp = GetObject(, "EXCEL.Application")
If Err.number <> 0 Then
Err.Clear
Set objGEXCELapp = CreateObject("EXCEL.Application")
End If
objGEXCELapp.Application.Visible = True
Set objGEXCELwkBk = objGEXCELapp.Workbooks.Open(strNewFilePath)
If Err.number <> 0 Then
Set objGEXCELwkBk = objGEXCELapp.Workbooks.Add
Err.Clear
End If
objGEXCELwkBk.Worksheets.Add (After = objGEXCELwkBk.Worksheets.Count)
Set objGEXCELSh = objGEXCELwkBk.Worksheets(objGEXCELwkBk.Worksheets.Count)
End Sub
Это не VBScript, это VBA. Пожалуйста, отредактируйте свое сообщение соответственно. –