一個Word 難題__只改一個小地方喔



贊助商連結


頁 : 1 [2]

genious
2002-08-11, 01:27 PM
請問一下合併列印要怎麼樣弄啊,我想學一下說,謝謝。

贊助商連結


無聊
2002-08-12, 02:11 AM
最初由 genious 發表
請問一下合併列印要怎麼樣弄啊,我想學一下說,謝謝。

所謂合併列印,大部分是以一個相同的內容向另一個特定資料庫(如WORD,EXCEL,ACCESS等)要所謂不一樣的文字部分拿來列印,以減少重複鍵入的工作及時間.

例如:
用於寄廣告信時,它的內容除了姓名以外,可以說是一模一樣!

先建一個檔來放客戶姓名資料〔表格型式-最好在最上列要有對應的欄位名稱〕->存檔
再打一封廣告信當底稿,要求工具合併列印來源指向〔客戶姓名資料〕檔位置,會多出〔合併列印工具列〕,此時對〔姓名部分〕插入〔所對應的欄位名稱〕,再決定要存檔或列印或另生文件等方式完成.

因為它的操作有些煩瑣,只能儘量省略,請自行學習,如有問題我會儘量幫忙!

genious
2002-08-12, 01:44 PM
學到了一招,謝謝你的分享我去試試

nad123
2002-08-12, 03:43 PM
最初由 無聊 發表

.
.
先建一個檔來放客戶姓名資料〔表格型式-最好在最上列要有對應的欄位名稱〕->存檔
.
.
因為它的操作有些煩瑣,只能儘量省略,請自行學習,如有問題我會儘量幫忙!
看不懂!
請問以word 來建立客戶姓名資料嗎?怎麼建立?謝謝!

無聊
2002-08-17, 04:04 AM
最初由 nad123 發表

看不懂!
請問以word 來建立客戶姓名資料嗎?怎麼建立?謝謝!

以一個連續的表格方式來建立客戶姓名資料

最上面的一列(作為標題列),最好是上面都有個別輸入單項的名稱(如:姓名,年齡,住址等等),以對應合併文件!〔PS:不過前後位置並不須要與合併文件對應〕

在下面即可輸入以每列為一個單位〔客戶資料〕來輸入

nad123
2002-08-18, 02:35 PM
最初由 無聊 發表


以一個連續的表格方式來建立客戶姓名資料

最上面的一列(作為標題列),最好是上面都有個別...
有空在試試,謝謝了。

leonchou
2002-09-27, 03:11 AM
jshj0314:
...每聯左上角有一個編號,我打好存檔的時候是001。現在我要印100張出來,我要如何不用『改一次編號,印一次』的方法去處理那個編號,只要下一次列印指令,讓它印出來時照順序(001∼100)排好呢?
假設編號 001 是內文的最開始三個字.

Sub 印100張()
Set myRange = ActiveDocument.Range(0, 3)
For p = 100 To 1 Step -1
myRange.Text = Format(p, "000")
ActiveDocument.PrintOut Background:=True
Next p
End Sub

[註]
1.For p = 100 To 1 Step -1 是讓編號從100開始倒回去印,
 這樣最後印完就會照順序 (001~100) 排好.
2.理論上這個程式是可以達到你的需求, 但連續送出100個
 列印的Job給印表機, 和一般列印100份可不相同..
 到時候執行起來PC或Printer會不會掛掉就不敢保証了 :D

Komi
2002-09-27, 08:25 AM
配合FinePrint這個軟體試印的結果,
(先丟給FinePrint,再丟到實體印表機)
結果一切正常,沒啥「大」問題。
Leon↑↑這個方法的確很好用。
但建議在左上角先行打上「000」以策安全。

另外,由於該巨集執行的速度快過於「文件傳給印表機的速度」;
而Word預設好像有啟動「幕後列印」;恰巧Leon又設 Background:=True
這麼一來在Word進行列印時,能借用到使用額外的系統記憶體,來進行其
他的事(包含讓該巨集繼續執行迴圈的下一次);連帶使印表機佇列的列印
工作變成「後進先出」的情況下;
在巨集中的迴圈跑了一陣子之後,第一張文件才要印出來的時候;
很可能印出來的文件編號順序反倒變成↓
089、090、091~100→001、002、003.....088 請留心!
建議改成↓,可以避開順序錯置的問題,而又能讓Word在列印空檔去做其它的事;
(不含讓該巨集繼續執行迴圈的下一次;但卻有空檔可以讓我們反悔去按Ctrl+Break)。
但若印表機列印速度特慢或印表機本身記憶體很少的時候(),建議將下面的Delay 5 改成Delay 10。

Sub 印100張()
Set myRange = ActiveDocument.Range(0, 3)
For p = 100 To 1 Step -1
myRange.Text = Format(p, "000")
ActiveDocument.PrintOut Background:=False '(1) 改為False
Delay 5 '(2) 加這一行跟下面的Function
Next p
End Sub

Sub Delay(DelayTime As Single)
Dim ST As Single
ST = Timer
Do Until (Timer - ST > DelayTime)
DoEvents
Loop
End Sub

leonchou
2002-09-27, 02:17 PM
高人指點, 感謝~~
我這應該就叫"拋磚引玉"吧.. ^^