標題:
[發問]
如何簡化程式?
[打印本頁]
作者:
luke
時間:
2012-4-27 23:09
標題:
如何簡化程式?
各位大大
小弟寫了一些程式如下
fnra = fd & "RRR\" & A.Offset(, -4) & "\LAN0"
fnrb = fd & "RRR\" & A.Offset(, -4) & "\LAN1"
fnrc = fd & "RRR\" & A.Offset(, -4) & "\LAN2"
fnrd = fd & "RRR\" & A.Offset(, -4) & "\LAN3"
fnre = fd & "RRR\" & A.Offset(, -4) & "\LAN4"
fnrf = fd & "RRR\" & A.Offset(, -4) & "\LAN5"
fnrg = fd & "RRR\" & A.Offset(, -4) & "\LAN6"
fnrh = fd & "RRR\" & A.Offset(, -4) & "\LAN7"
fnri = fd & "RRR\" & A.Offset(, -4) & "\LAN8"
fso.copyfolder fnra, fr, True
fso.copyfolder fnrb, fr, True
fso.copyfolder fnrc, fr, True
fso.copyfolder fnrd, fr, True
fso.copyfolder fnre, fr, True
fso.copyfolder fnrf, fr, True
fso.copyfolder fnrg, fr, True
fso.copyfolder fnrh, fr, True
fso.copyfolder fnri, fr, True
如何簡化程式?
煩請先進 大大指導
作者:
GBKEE
時間:
2012-4-28 06:53
回復
1#
luke
Dim xi As Integer
For xi = 0 To 8
fnra = fd & "RRR\" & A.Offset(, -4) & "\LAN" & xi
fso.copyfolder fnra, fr, True
Next
複製代碼
作者:
c_c_lai
時間:
2012-4-28 07:43
本帖最後由 c_c_lai 於 2012-4-28 07:46 編輯
回復
2#
GBKEE
A.Offset(, -4) 其中的 Offset(, -4) 指的到底是甚麼含意? 為何又使用 -4? 前面有時是 "(,:" 、"(0,"、 "(1,"、或是 "(2,"?
不好意思,初淺的我、對 Excel 的某些指令不甚理解? Offset 是移位之意?
謝謝您!
作者:
GBKEE
時間:
2012-4-28 09:56
回復
3#
c_c_lai
VBA 的說明 及範例
Offset 屬性 Range 物件時用 Offset 屬性。
傳回 Range 物件,用以代表某個指定區域以外的範圍。唯讀。
expression.Offset(RowOffset, ColumnOffset)
Worksheets("Sheet1").Activate
ActiveCell.Offset(rowOffset:=3, columnOffset:=3).Activate
複製代碼
說明如看不懂 多操作幾次範例 修改參數 就會明白
RowOffset 負數為向上移動
ColumnOffset 負數為向左移動
作者:
c_c_lai
時間:
2012-4-28 10:26
回復
4#
GBKEE
RowOffset 負數為向上移動 ' 本身所在欄位不算,再加上移位多少列。
ColumnOffset 負數為向左移動 ' 本身所在欄位不算,再加上移位多少欄。
原來如此,按 Excel F1 說明時,不知是個人資質不佳、還是過笨兒,有時真是有看沒懂。
謝謝您! 這回真的懂了,亦即開竅了!
作者:
sleepycat
時間:
2012-4-29 21:51
回復
2#
GBKEE
大大您好
我看到這個問題時直觀也是像您這樣簡化
但是我又想到一個問題
您目前的寫法應該只會有fnra這個變數
若考慮到 fnra, fnrb, fnrc, ..... 等這些變數如還是需要
其他地方可能會使用到這些變數名稱
那這樣的話該如何修改會比較好??
作者:
Hsieh
時間:
2012-4-29 22:29
回復
6#
sleepycat
這就是簡化啊!
把原本需要多個變數改到只需一個變數可以執行
你要問的應該不是這個問題吧!
你是說在迴圈中要得到多個變數來儲存對應的值,對嗎?
這可使用動態陣列來儲存
例如:變數名稱fnra, fnrb, fnrc.....有很多變數
Dim fnr()
for i=0 to 100
ReDim Preserve fnr(i)
fnr(i)=i
next
這樣fnr就是一個含有101個元素的陣列,每個元素就代表一個變數。
作者:
luke
時間:
2012-4-29 23:01
本帖最後由 luke 於 2012-4-30 19:29 編輯
回復
7#
Hsieh
謝謝
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)