Я хотел бы использовать макрос для нескольких исключений автоматически в моем linux (Debian 9).поэтому я немного искал и обнаружил, что это возможно с помощью VB.NET.
После добавления пакета Microsoft я установил dotnet-sdk
sudo apt-get install dotnet-sdk-2.1
, затем создал свой проект с помощью dotnet new console -lang VB
Я изменил Program.vb так:
Imports System
Imports System.Text
Imports System.IO
Imports Microsoft.VisualBasic.ControlChars
Imports Excel = Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Interop
Module Program
Sub Main(args As String())
ProcessFiles
End Sub
End Module
Sub ProcessFiles()
Dim Filename, Pathname As String
Dim wb As Excel.Workbook
Pathname = ActiveWorkbook.Path & "/path/xlsx/"
Filename = Dir(Pathname & "*.xlsx")
Do While Filename <> ""
wb = Workbooks.Open(Pathname & Filename)
DoWork( wb )
wb.Close( SaveChanges:=True )
Filename = Dir()
Loop
End Sub
Sub DoWork(wb As Excel.Workbook)
With wb
.Worksheets(1).Range("A1").Select
.Selection.End(xlUp).Select
.Rows("1:1").Select
.Selection.AutoFilter
.ActiveSheet.Range("$A$1:$L$999999").AutoFilter( Field:=1 , Criteria1:="<>*2018*" )
.Range("A2:L999999").Select
.Selection.EntireRow.Delete
.Selection.End(xlUp).Select
.ActiveSheet.Range("$A$1:$L$999999").AutoFilter( Field:=1 )
.Rows("1:1").Select
.Selection.AutoFilter
.Range("A2").Select
End With
End Sub
А сейчас я пытаюсь запустить с dotnet run
, и у меня ошибка: error BC30002: The type 'Excel.Workbook' is not defined.
Я нашел много ответов, которые дают хороший смысл:
Imports Excel = Microsoft.Office.Interop.Excel
, но этого недостаточно.Я также нашел решения с использованием Visual Studio, но у меня его нет и я не хочу ...
Спасибо за вашу помощь