從事建筑行業的人都知道清單的輸入格式,在這里我也簡單介紹一下。
十二位的清單格式:
兩位專業號+兩位章號+兩位節號+三位小節號+三位流水號,如01 01 01 001 001(為了從視覺上看到不同位的意義,我把一個標準的清單用空格分隔開了,正常的清單號是沒有空格分隔的)。不同專業、章、節、小節可以組合出不同的清單,最后一位流水號起到區分同一清單的作用,即為010101001001與010101001002是同一清單,只是用戶流水號不同,因為一份預算書中不允許有完全相同的清單出現。
作為自動化輸入大量清單我首先想到的就是使用Robot的DataPool。從EXCEL制作大量清單并保存為CSV文件,導入到DataPool中進行循環輸入。但這里我遇到一個問題:保存為CSV格式后清單號的第一個0被抹掉了(直接在CSV文檔中輸入010101001001,保存后第一個0還是會被清除),這樣導入到DataPool后清單號都變成十一位了,這不是標準清單!解決辦法就是手工在DataPool中添加,但對于大量保存在DataPol中的清單這樣的修改是不可行的。于是只能放棄。
另一種辦法就是使用循環,將清單號如上面的格式拆分,分別對專業、章、節、小節、流水號進行循環,最后再組合成為一個標準的清單輸入。但這里還有一個小問題,如我對三位小節號從1循環到10,最后怎樣讓其輸出格式為001~010。其實很簡單,使用format函數。簡單代碼如下:
Sub Main
Dim Result As Integer
Dim zhuan,zhang,jie,liu as integer
Dim qing as string
'Initially Recorded: 2006-11-15 21:35:34
'scrīpt Name:
for jie = 1 to 5
for liu = 1 to 5
qing = "01" + "01" + "01" + Cstr(format(jie,"000")) + Cstr(format(liu,"000"))
InputKeys qing
InputKeys "{DOWN}"
next liu
next jie
End Sub
這是一個再簡單不過的循環語句,但是效果卻很不錯。由此可見我們不見得非要采用“高新技術”解決所有問題,最適用最簡單的方法就是最好的。
原文轉自:http://www.anti-gravitydesign.com