2015-09-04 69 views
0

我已經編寫了一個應用程序來讀取用戶輸入並將所述輸入寫入.txt文件,因爲Excel宏更容易讀取。我已經編寫了一個從文本文件讀取並將數據推送到Excel工作表的宏。是否有任何確定的方式來運行從JavaScript的Excel宏?試圖從運行javascript的html應用程序調用excel宏

這是我曾嘗試:

function RunMacro(objType) { 
    switch (objType) { 
     case "90": 
      var fileName = "P:\\Engineering\\Generated Part Logs\\90-.xlsm"; 
      break; 
     case "69": 
      fileName = "P:\\Engineering\\Generated Part Logs\\69-.xlsm"; 
      break; 
     case "66": 
      fileName = "P:\\Engineering\\Generated Part Logs\\66-.xlsm"; 
      break; 
     case "40": 
      fileName = "P:\\Engineering\\Generated Part Logs\\40-.xlsm"; 
      break; 
     case "30": 
      fileName = "P:\\Engineering\\Generated Part Logs\\30-.xlsm"; 
      break; 
     case "09": 
      fileName = "P:\\Engineering\\Generated Part Logs\\09-.xlsm"; 
      break; 
     case "02": 
      fileName = "P:\\Engineering\\Generated Part Logs\\02-.xlsm"; 
      break; 
    } 
    var bookName = fileName.substring(35); 
    alert(bookName); 
    var Excel = new ActiveXObject("Excel.Application"); 
    Excel.Workbooks.Open(fileName); 
    Excel.Visible = true; 
    Excel.Run("Sheet1.ImportPartData1"); 
} 

上午我命名宏正確嗎?或者,這只是從javascript應用程序訪問Excel宏的錯誤方法?

+0

我最初的錯誤被錯誤地識別宏文件.. –

回答

0

您需要包括文件名:

Excel.Run("'fileNameHere.xlsm'!Sheet1.ImportPartData1") 
+0

我已經嘗試過,並且因爲某些原因似乎不起作用。 –

+0

你能準確的展示你的嘗試嗎?當你運行你的代碼時究竟發生了什麼? –

+0

我實際上設法運行宏而不引用文件名。我認爲它起作用,因爲宏名稱只是sheet1.import data1 –

0

下面是代碼:

var Excel = new ActiveXObject("Excel.Application"); 
 
Excel.Workbooks.Open("P:\\Engineering\\Generated Part Logs\\90.xlsm"); 
 
Excel.Visible = false; 
 
Excel.Run("Sheet1.ImportPartData1");