台灣最大程式設計社群網站
線上人數
1013
 
會員總數:246133
討論主題:189712
歡迎您免費加入會員
討論區列表 >> ASP >> vbs如何處理excel
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
vbs如何處理excel
價值 : 20 QP  點閱數:497 回應數:13
樓主

sam
初學者
149 96
683 184
發送站內信

我想用vbs產生一個excel檔案並寫入資料後存檔,請問該如何寫這支程式,謝謝大大



file_being_created= "sales01.xls"
set fso = createobject("scripting.filesystemobject")
Set act = fso.CreateTextFile("D:/Web/SALES/" & file_being_created, true)

act.WorkBooks.Open("D:/Web/SALES/" & file_being_created)
act.WorkSheets(1).Activate
act.Cells(1,1).Value="擔當業務"
act.Cells(1,2).Value="客戶名稱"
act.Cells(1,3).Value="客戶訂單"
act.Cells(1,4).Value="客戶料號"

if not act.ActiveWorkBook.Saved then act.ActiveSheet.PrintPreview
act.close

搜尋相關Tags的文章: [ vbs ] ,
本篇文章發表於2019-07-20 09:06
1樓
作者回應

sam
檢舉此回應
沒有那位大大可以提供一下sample嗎? @`@,上網找的範例都無法執行
本篇文章回覆於2019-07-22 09:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
現在已經很少人特地使用vbs來輸出excel了...
=================

你只能靠vbs來解決嗎?
=================

你找了哪些範例? 貼一下, 我幫你看一下好了
本篇文章回覆於2019-07-22 10:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

sam
檢舉此回應
謝謝

objExcelApp.WorkBooks.Open("D:\Web\SALES\sales01.xls")

set objExcelBook = objExcelApp.ActiveWorkBook

set objExcelSheet = objExcelBook.Sheets(1)

for i= 2 to 100

objExcelSheet.Cells(i,4).Value="第一行第四列"

next

objExcelSheet.activeWorkBook.saveAs "D:\Web\SALES\te.xls", 56

objExcelSheet.activeWorkBook.close

objExcelSheet.Quit

Set objExcelSheet = Nothing

如果不另存新檔,程式又該如何寫呢?
本篇文章回覆於2019-07-22 10:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

缺氧的羊:窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
http://www.blueshop.com.tw/board/FUM200410061525290EW/BRD20040325175323N9K.html
這裡面有 CreateObject("Excel.Application") 的指令說明


本篇文章回覆於2019-07-22 11:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

sam
檢舉此回應
可以了,謝謝大大的分享
本篇文章回覆於2019-07-22 11:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
有問題在這裡問就可以了...


程式如下,無法執行,請協助看一下,謝謝
Set xcon = Wscript.CreateObject("ADODB.Connection")
xcon.Open "Provider=MSDAORA.1;Data Source=TOPPROD;User Id=DG;Password=DG;"

Dim objExcelApp
Set objExcelApp = CreateObject("Excel.Application")

' Set objExcelBook = objExcelApp.workbooks.add '新增檔案方法
' Set objExcelBook = objExcelApp.workbooks.open(""D:\Web\SALES\sales01.xls"")

objExcelApp.Workbooks.Open sales01.xls '開檔方法,True 表示唯讀開啟
Set objExcelBook = objExcelApp.ActiveWorkbook '若為開檔方法,則必須用此命令取得 WorkBook

Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets(1)

objExcelSheet.Activate
objExcelApp.Application.Visible = True

objExcelSheet.Cells(1,1).Value = "擔當業務"
objExcelSheet.Cells(1,2).Value = "客戶名稱"
objExcelSheet.Cells(1,3).Value = "客戶訂單"
objExcelSheet.Cells(1,4).Value = "客戶料號"
objExcelSheet.Cells(1,5).Value = "規格"
objExcelSheet.Cells(1,6).Value = "訂單日期"
objExcelSheet.Cells(1,7).Value = "約定交貨日"
objExcelSheet.Cells(1,8).Value = "排定交貨日"
objExcelSheet.Cells(1,9).Value = "訂單單號"
objExcelSheet.Cells(1,10).Value = "訂單項次"
objExcelSheet.Cells(1,11).Value = "廠內料號"
objExcelSheet.Cells(1,12).Value = "原始數量"
objExcelSheet.Cells(1,13).Value = "未交數量"
objExcelSheet.Cells(1,14).Value = "原始金額"
objExcelSheet.Cells(1,15).Value = "未交金額"
objExcelSheet.Cells(1,16).Value = "現有庫存(W110)"


' objExcelApp.activeworkbook.SaveAs("D:\Web\SALES\sales01.xls"), 56 '另存新檔
objExcelApp.activeworkbook.Save '儲存檔案

objExcelApp.Application.Quit '結束 Excel ,一定要做,不然檔案會被開啟而視為唯讀
Set objExcelApp = Nothing




解決方式:檔案路徑要寫對...

1. 在 D:\ 建一個空白的 sales01.xls (我沒有這個檔案, 所以我自己建一個)
2. 把 objExcelApp.Workbooks.Open sales01.xls '開檔方法,True 表示唯讀開啟
改寫成 objExcelApp.Workbooks.Open "D:\sales01.xls" '開檔方法,True 表示唯讀開啟

你的問題在於 "檔案路徑不完整, 所以找不到該檔案"
本篇文章回覆於2019-07-22 16:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

sam
檢舉此回應
非常謝謝,已經抓到原始檔案了,可以執行此程式,但是最後還是會跳出「sales01.xls已經被修改過,您是否要儲存檔案」的對話方塊,要如何才能直接覆蓋而不跳出這個對話方塊呢?
本篇文章回覆於2019-07-24 10:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

sam
檢舉此回應
改成這樣可以直接覆蓋了,但是sales01.xls會一直開啟,執行一次增加一個sales01.xls,要如何關閉excel檔呢,或者還有其它的方法會更好

Dim objExcelApp
Set objExcelApp = CreateObject("Excel.Application")

' Set objExcelBook = objExcelApp.workbooks.add '新增檔案方法
' Set objExcelBook = objExcelApp.workbooks.open(""D:\Web\SALES\sales01.xls"")

objExcelApp.Workbooks.Open "D:\Web\SALES\sales01.xls" '開檔方法,True 表示唯讀開啟
Set objExcelBook = objExcelApp.ActiveWorkbook '若為開檔方法,則必須用此命令取得 WorkBook

Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets(1)

objExcelSheet.Activate
objExcelApp.Application.Visible = True
Application.DisplayAlerts = False

objExcelSheet.Cells(1,1).Value = "擔當業務"
objExcelSheet.Cells(1,2).Value = "客戶名稱"
objExcelSheet.Cells(1,3).Value = "客戶訂單"
objExcelSheet.Cells(1,4).Value = "客戶料號"
objExcelSheet.Cells(1,5).Value = "規格"
objExcelSheet.Cells(1,6).Value = "訂單日期"
objExcelSheet.Cells(1,7).Value = "約定交貨日"
objExcelSheet.Cells(1,8).Value = "排定交貨日"
objExcelSheet.Cells(1,9).Value = "訂單單號"
objExcelSheet.Cells(1,10).Value = "訂單項次"
objExcelSheet.Cells(1,11).Value = "廠內料號"
objExcelSheet.Cells(1,12).Value = "原始數量"
objExcelSheet.Cells(1,13).Value = "未交數量"
objExcelSheet.Cells(1,14).Value = "原始金額"
objExcelSheet.Cells(1,15).Value = "未交金額"
objExcelSheet.Cells(1,16).Value = "現有庫存(Wxxx)"


' objExcelApp.activeworkbook.SaveAs("D:\Web\SALES\sales01.xls"), 56 '另存新檔
objExcelApp.activeworkbook.Save '儲存檔案
Application.DisplayAlerts = True

objExcelApp.Application.Quit '結束 Excel ,一定要做,不然檔案會被開啟而視為唯讀
Set objExcelApp = Nothing
本篇文章回覆於2019-07-24 11:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓



我在使用時, 沒有出現任何提示訊息
每執行1次, 就是呼叫一次Excel, 填入文字, 儲存, 關閉...

========================
你應該不是直接在windows執行吧...
透過IIS來執行的話, 會因為權限問題, 關不掉...
於是Excel會一直卡在工作管理員, 每執行一次就多一個Excel.exe


本篇文章回覆於2019-07-24 12:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

sam
檢舉此回應
謝謝你的回應,我是用windows的排程去執行這支vbs的,那我該如何處理呢?
本篇文章回覆於2019-07-24 13:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
我試著設定了一下, 沒有遇到問題...

每次執行時, 螢幕會瞬間彈出一個Excel, 然後又馬上消失,
然後sales01.xls的內容就更新了...

( 我用win7試的, 登入後才執行排程, 每10分鐘1次...)

======================
本篇文章回覆於2019-07-24 14:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

sam
檢舉此回應
還是非常謝謝你
本篇文章回覆於2019-07-24 15:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

轩啸
檢舉此回應
挺简单的,最简单的办法:
将从数据库中查询的内容导出excel内
http://bbs.ttasp.com/forum.php?mod=viewthread&tid=8603&fromuid=1
(出处: 天天ASP家\)

本篇文章回覆於2019-10-16 13:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.