2017-01-02 4 views
-1

У меня есть файл XLSX, который я изменяю, чтобы скопировать некоторые данные из одной ячейки в другую, используя следующий код VBA.Как запустить код VBA из командного файла?

Затем я конвертирую этот файл xlsx в формат csv. (Я в порядке)

Поскольку этот xlsx-файл заменяется ежедневно новым файлом, мне нужно найти способ запускать код VBA из пакетного файла, который я могу запланировать.

Мой код

Option Explicit 

Sub copy_Cell_A4() 

    Dim RowLocation As Long 'can hold over 32000 if over this many rows 
    Dim ws As Worksheet 

    Application.ScreenUpdating = False 

    For Each ws In Worksheets 
     RowLocation = ws.Range("A" & Rows.Count).End(xlUp).Row 
     ws.Range("A4").Copy ws.Range("J6:J" & RowLocation) 
     ws.Range("A2").Copy ws.Range("K6:K" & RowLocation) 
     ws.Range("E2").Copy ws.Range("L6:L" & RowLocation) 
    Next ws 

    Application.CutCopyMode = False 
    Application.ScreenUpdating = True 
    Application.ThisWorkbook.Close SaveChanges:=True 

End Sub 
+1

Вы должны поместить свой код в другой первенствует файл или VBScript. –

ответ

1

Вы можете изменить код немного и хранить то же самое в .vbs скрипт, который будет представлять собой автономный файл сценария так можно использовать независимо друг от друга.

Ссылка вашего Excel файл, как это:

Option Explicit 
Dim xlApp, xlBook 
Set xlApp = CreateObject("Excel.Application") 
Set xlBook = xlApp.Workbooks.Open("C:\Users\user1\Desktop\samplefile.xlsx, 0, True) 

Надеется, что это поможет.

0

Вы можете использовать VBScript для бесшумного запуска MACRO в своей книге.

В приведенном ниже кода, просто замените следующие параметры:

  1. "C:\YourFolderPath\" - с путем к папке, где вы храните ваш Excel файл с кодом в нем.

  2. "SO_VBScript.xlsm" - изменить в файл Excel, где вы храните свой код "copy_Cell_A4" Sub.

  3. "copy_Cell_A4" - это имя Sub, которое у вас есть в вашем посте.

VBScript код

Option Explicit 

Dim xlApp 
Dim xlBook 
Set xlApp = CreateObject("Excel.Application") 

Set xlBook = xlApp.Workbooks.Open("C:\YourFolderPath\SO_VBScript.xlsm", 0, True) 
xlApp.Run "copy_Cell_A4" 
xlApp.DisplayAlerts = False 
xlBook.Save 
xlBook.Close 
xlApp.Quit 

Set xlBook = Nothing 
Set xlApp = Nothing 

WScript.Echo "Finished" 
WScript.Quit 
+0

@TontoDiablo вы пробовали запустить выше cde в VBScript? –