Visual Studio 2015 - Die Manipulation Von Excel?

Habe ich 750 Excel-Dateien, die ich will

  1. sauber durch löschen von Spalten von Daten, die eine Bezeichnung mit einem Sternchen,
  2. dann nehmen Sie einige der Daten und setzen Sie es in eine neue Arbeitsmappe, Arbeitsblatt, und andere Daten, die in der gleichen Arbeitsmappe, Arbeitsblatt, und einige andere Daten in eine zweite neue Arbeitsmappe.

Erstellte ich ein WPF-Projekt in Visual Studio 2015 mit einem kleinen dialog-box mit 2 radio-buttons für

  1. saubere Daten,
  2. erzeugen neuer Dateien.

Dies ist mein VB-code:

    Class MainWindow
    Dim wb As Microsoft.Office.Interop.Excel._Workbook
    Dim ws As Microsoft.Office.Interop.Excel._Worksheet
    Dim iCol As Integer
    Dim strName As String
    Dim iIndex As Integer
    Dim strPath As String
    Dim strFile As String

    Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles button.Click
        If cleanRadioButton.IsChecked = True Then
            strPath = "c:\test\old\"
            strFile = Dir(strPath & "*.csv")
            Do While strFile <> ""

                wb = wb.Open(Filename:=strPath & strFile)

                'Loop through the sheets.
                For iIndex = 1 To Application.Worksheets.Count
                    ws = Application.Worksheets(iIndex)

                    'Loop through the columns.
                    For iCol = 1 To ws.UsedRange.Columns.Count
                        'Check row 1 of this column for the char of *
                        If InStr(ws.Cells(10, iCol).Value, "*") > 0 Then
                            'We have found a column with the char of *
                            ws.Columns(iCol).EntireColumn.Delete
                            ws.Columns(iCol + 1).EntireColumn.Delete
                            ws.Columns(iCol + 2).EntireColumn.Delete
                        End If
                    Next iCol

                Next iIndex
                wb.SaveAs(Filename:="C:\test\new\" & wb.Name, FileFormat:=xlOpenXMLWorkbook)
                wb.Close(SaveChanges:=False)
                strFile = Dir()
            Loop
            MessageBox.Show("The csv files have now been cleaned.  Congrats.")
        Else inputRadioButton.IsChecked = True
            MessageBox.Show("The data has now been split into Trajectory and ForcePlate input files.  High 5.")
        End If
    End Sub
End Class

Ich bekomme 3 Fehler, aber kann nicht herausfinden, wie Sie zu lösen.

a) Arbeitsblätter ist nicht Mitglied in der Anwendung [Zeile 19]

b) Arbeitsblätter ist nicht Mitglied in der Anwendung [Zeile 20]

c) 'xlOpenXMLWorkbook' ist nicht deklariert. Es kann nicht mehr zugegriffen werden aufgrund seiner Schutzstufe.

Ich benutze beide VB.Net und VBA. VB.Net hat eine fülle von Funktionen, einschließlich Zugriff auf Arbeitsmappen gespeichert unter jeder Excel-version, und die resultierende ausführbare Dateien kann hundert mal schneller als eine VBA-makro. Ich halte VB.Net die bessere Sprache, und ich benutze es mehr als VBA. Jedoch ist der Zugriff auf Arbeitsmappen aus VB.Net langsam ist. Wenn das einzige Ziel des Programms ist die Bearbeitung von Arbeitsmappen, ich würde mit VBA.

InformationsquelleAutor Tom Chambers | 2015-07-22

Schreibe einen Kommentar