我有一个XLSX文件,我修改了使用以下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
答案 0 :(得分: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)
希望这会有所帮助。
答案 1 :(得分:0)
您可以使用VBScript在工作簿中静默运行MACRO。
在下面的代码中,只需替换以下参数:
"C:\YourFolderPath\"
- 使用您的文件夹路径,在其中保存包含代码的Excel文件。
"SO_VBScript.xlsm"
- 修改您的Excel文件,保存您的" copy_Cell_A4" Sub
代码。
"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