Einen wunderschönen guten Morgen zusammen.
Ich habe mir ein kleines Programm geschrieben das mir Daten, die ich aus einem anderen Programm einlese und Rechenergebnisse, in eine Ecxel-Tabelle schreiben soll.
Funktioniert soweit auch wunderbar. Es gibt da allerdings noch Kleinigkeiten die mir fehlen bzw. stören.
1. Ich hätte gern das Excel die Spaltenbreite automatisch anpasst damit der komplette Text einer Zelle auch sichtbar ist. Dies wäre z.B. für die Zelle "Anzahl der Windungen" der Fall. Hier ist nämlich nicht alles direkt lesbar sondern "abgeschnitten".
2. Ich möchte noch eine weitere Spalte in der, jedesmal wenn VB einen neuen Datensatz nach Excell rüberschiebt, das aktuelle Datum und die Uhrzeit geschrieben wird. Habe aber keien Ahnung wie ich das unter VB Programmiere.
3. Als letztes noch ein Problem mit den Werten die in die Excel-Tabelle geschrieben werden. Dort bekomme ich folgendes gesagt.
"Die Zahl in dieser Zelle ist als Text formatiert oder es ist ein Apostroph vorangestellt"
Wie schaffe ich es das VB den Wert direkt als Zahl in die Tabelle schreibt?
Schonmal ein riesen Dankeschön im voraus!!!
MfG
Swift
Ich habe mir ein kleines Programm geschrieben das mir Daten, die ich aus einem anderen Programm einlese und Rechenergebnisse, in eine Ecxel-Tabelle schreiben soll.
Visual Basic-Quellcode
- Private Sub excel_export()
- Dim S As Byte
- On Error Resume Next
- xlAnw.Workbooks.Open "c:\temp\Test.xls"
- If Err > 0 Then
- On Error GoTo Error:
- xlAnw.Workbooks.Add
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(1, 1).Value = "ME_ID"
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(1, 2).Value = "Gewicht"
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(1, 3).Value = "Länge"
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(1, 4).Value = "Breite"
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(1, 5).Value = "Dicke"
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(1, 6).Value = "Messwert"
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(1, 7).Value = "Anzahl der Windungen"
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(1, 8).Value = "R_FE"
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(1, 9).Value = "R_iso"
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(1, 10).Value = "rho_A"
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 1).Value = ME_ID
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 2).Value = gewicht
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 3).Value = Text9
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 4).Value = breite
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 5).Value = dicke
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 6).Value = Text6
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 7).Value = Text1
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 8).Value = Text7
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 9).Value = Text8
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(2, 10).Value = Text10
- xlAnw.ActiveWorkbook.SaveAs FileName:="c:\temp\Test.xls"
- Else
- On Error GoTo Error:
- ' nächste freie Reihe ermiteln
- S = xlAnw.ActiveWorkbook.ActiveSheet.Cells(65536, 1).End(xlUp).Row + 1
- ' Zellen schreiben
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(S, 1).Value = ME_ID
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(S, 2).Value = gewicht
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(S, 3).Value = Text9
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(S, 4).Value = breite
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(S, 5).Value = dicke
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(S, 6).Value = Text6
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(S, 7).Value = Text1
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(S, 8).Value = Text7
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(S, 9).Value = Text8
- xlAnw.ActiveWorkbook.ActiveSheet.Cells(S, 10).Value = Text10
- End If
- xlAnw.ActiveWorkbook.Close SaveChanges:=True
- xlAnw.Quit
- Set xlAnw = Nothing
- Exit Sub
- Error:
- MsgBox Err.Description
- End Sub
Funktioniert soweit auch wunderbar. Es gibt da allerdings noch Kleinigkeiten die mir fehlen bzw. stören.
1. Ich hätte gern das Excel die Spaltenbreite automatisch anpasst damit der komplette Text einer Zelle auch sichtbar ist. Dies wäre z.B. für die Zelle "Anzahl der Windungen" der Fall. Hier ist nämlich nicht alles direkt lesbar sondern "abgeschnitten".
2. Ich möchte noch eine weitere Spalte in der, jedesmal wenn VB einen neuen Datensatz nach Excell rüberschiebt, das aktuelle Datum und die Uhrzeit geschrieben wird. Habe aber keien Ahnung wie ich das unter VB Programmiere.
3. Als letztes noch ein Problem mit den Werten die in die Excel-Tabelle geschrieben werden. Dort bekomme ich folgendes gesagt.
"Die Zahl in dieser Zelle ist als Text formatiert oder es ist ein Apostroph vorangestellt"
Wie schaffe ich es das VB den Wert direkt als Zahl in die Tabelle schreibt?
Schonmal ein riesen Dankeschön im voraus!!!
MfG
Swift