【问题标题】:Running Vb-Script from R从 R 运行 Vb 脚本
【发布时间】:2019-09-23 11:59:10
【问题描述】:

我正在使用这个教程。

https://www.listendata.com/2016/07/run-vba-in-r.html

我知道一点 R 但不知道 VBA。

我对第 1 步中的代码行有疑问:

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.DisplayAlerts=False
Set wb = objExcel.Workbooks.Open("C:\Users\Deepanshu\Documents\example.xlsx")
Set Xlsheet = wb.Worksheets("PRDSALE")
Xlsheet.UsedRange.Borders.LineStyle = xlContinuous
Xlsheet.UsedRange.Borders.Color = RGB(0, 0, 0)
Xlsheet.UsedRange.Borders.Weight = xlThick
wb.save

如何制作代码来保存和关闭excel文件? 因为现在当我在 r 中运行这些行时:

pathofvbscript = "C:\\Users\\Deepanshu\\Documents\\border.vbs"
shell(shQuote(normalizePath(pathofvbscript)), "cscript", flag = "//nologo")

excel 应用程序正在打开。如果我关闭它,则根本不会保存文件。我希望在excel根本没有打开时提交更改 - “幕后”。有办法吗?

【问题讨论】:

  • 要开始使用它,请在 Excel 中执行操作时记录一个宏。
  • 如何记录关闭 Excel 应用程序的操作?
  • 你没有提到退出excel,你提到保存和关闭excel文件。
  • 那么如何通过宏代码退出excel呢?
  • 在此处讨论的上下文(COM 对象模型)中,我假设相当于 File/Exit(或 Quit)。 OTOH根本不清楚OP真正想要什么......

标签: r excel vba


【解决方案1】:

您也可以使用教程的最后一步:VB Script : Run Excel Macro from R,它会在宏执行后保存工作簿:

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True
objExcel.DisplayAlerts=False
Set wb = objExcel.Workbooks.Open("C:\Users\Deepanshu\Documents\Book1.xls")
objExcel.Application.Run "Book1.xls!macro1"
wb.save

其中Book1.xls!macro1workbookName!MacroName

【讨论】:

  • 但是excel表格是R输出的新excel。我无法自动插入宏。
  • @Jordan1200 你可以在R中使用saveWorkbook(wbfullpath)来保存工作簿,你只需要知道生成工作簿的名称和路径,还要注意wbfullpath <- loadWorkbook("testFile.xlsx", create = TRUE)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 2018-09-22
  • 2014-03-03
  • 2013-10-24
  • 2011-02-04
  • 2013-05-03
  • 1970-01-01
相关资源
最近更新 更多