- #1
R
Richie01
Guest
Hallo Zusammen,
habe ein kleines Problem. Ich habe ein Programm geschrieben, was aus einer Crystal Reports (*.rpt) Datei automatisch einen Export nach Excel macht. Soweit so gut. Nun möchte ich gerne die Excel-Datei zusätzlich noch mittels VB bearbeiten lassen. Es sollen alle leeren Zeilen und alle leeren Spalten automatisch gelöscht werden. Wie kann ich das realisieren. Hier mein Programm für den Export via VB:
Private Sub Command1_Click()
On Error GoTo Login_Error
Dim objApplicat As Object
Set objApplication = CreateObject(CrystalRuntime.Application)
Dim strPath As String
strPath = c:\CLX01.rpt
Dim objReport As Object
Set objReport = objApplication.OpenReport(strPath, 1)
objReport.EnableParameterPrompting = False
objReport.ExportOptions.UseReportDateFormat = 1
objReport.ExportOptions.UseReportNumberFormat = 1
objReport.DisplayProgressDialog = False
objReport.ExportOptions.FormatType = 22->crEFTExcel80
objReport.ExportOptions.DiskFileName = c:\CLX01.xls
objReport.ExportOptions.DestinationType = 1->crEDTDiskFile
objReport.ExportOptions.ExcelAreaType = 4->crDetail
objReport.ExportOptions.ExcelConvertDateToString = False
objReport.ExportOptions.ExcelUseWorksheetFunctions = True
If False = ReportConnectExternalDatabase(objReport, Export to Excel, , ) Then
Debug.Print err
End If
Debug.Print Start
objReport.Export False
Debug.Print Finish
Exit Sub
Login_Error:
Debug.Print Description: & Err.Description & & Number: & Err.Number & & LastDllError: & Err.LastDllError & & Source: & Err.Source
End Sub
Function ReportConnectExternalDatabase(ByRef objReport As Object, _
ByVal strDSN As String, _
ByVal strU As String, _
ByVal strP As String) As Boolean
ReportConnectExternalDatabase = True
strU = strU
strP = strP
If (strDSN = ) Then
strDSN = Export to Excel
If (strU = ) Then
strU = User
End If
If (strP = ) Then
strP = password
End If
End If
Dim i As Integer
'Logons
Dim nTablesCount As Integer
nTablesCount = objReport.Database.Tables.Count
Debug.Print objReport.Database.Tables.Count & Str(objReport.Database.Tables.Count)
For i = 1 To nTablesCount
objReport.Database.Tables(i).SetLogOnInfo strDSN, strDSN, strU, strP
Debug.Print strDSN & strDSN
Debug.Print strU & strU
Debug.Print strP & strP
'Test connection
ReportConnectExternalDatabase = objReport.Database.Tables(i).TestConnectivity
If ReportConnectExternalDatabase = False Then
Exit For
End If
Next i
End Function