|
樓主 |
發表於 19-4-11 00:52
|
顯示全部樓層
本帖最後由 MaverickRay 於 19-4-11 01:07 編輯
本帖最後由 winso 於 19-4-10 08:35 編輯
Sheet1.Select ' --> 保證讓 EXCEL 畫面同時處於 Sheet1 (工作表1)
Columns("U:U").Select
關於(1)這塊,我今天去查了下書時,印像中我好像看到的是Range物件,這物件好像也是當使用其方法為Select 與 Activate 時,若呼叫的工作表範圍未在使用中時,則陳述式碼便會偵錯在那一行
所以我就在想或許columns也是...這麼一說應該就是我雖然改為用Range物件,不過也只是剛好因為這工作簿的工作表被我啟用中,所以才未出現錯誤吧..
呵..你果然是高手..
另外可以用sheet1.select嗎?
我看書中講的好像是要用sheets(1).select..
等等我再試試看...說不定又學到新招..
================================
關於(2)
自訂義名稱後
Cells(i, [淨額欄].Column) = Val(Cells(a, [尚存餘額欄].Column)) - Val(Cells(a, [使用金額)欄].Column)
而且你的 a 值 還沒指明是哪一列
後來我利用先前你教的方式,先用判別式 if ..then..elseif ....
一個個去比對要抓的字所在儲存格,然後針對該欄去設定了公式名稱..
途中發現 if ..then..elseif ... 若順序搞錯了,就會只抓到一欄後,訂了一欄的公式名稱後就跳出判斷式了..
後來我把它反過來做就成事了..
最後剛剛我用了迴圈的方法,去設定變數a ,然後參照您上方的
Cells(i, [淨額欄].Column) = Val(Cells(a, [尚存餘額欄].Column)) - Val(Cells(a, [使用金額)欄].Column)
將其修改成
Cells(a, [淨額欄].Column) = Val(Cells(a, [尚存餘額欄].Column)) - Val(Cells(a, [使用金額欄].Column))
執行時程序出現錯誤顯示
編譯錯誤,引數不為選擇性(optional)
我偵錯結果是出在上頭陳述式裡
Cells(a, [淨額欄.Column) = Val(Cells(a, [尚存餘額欄].Column)) - Val(Cells(a, [使用金額欄].Column))
淨額欄這裡....覺得很奇怪,切到 EXCEL的公式\名稱管理員 去看實際上是有利用程式定義到淨額欄的..且名稱內也沒有空格或底線等...但就是會出錯而不進行後續的加減..
倘若我把它修改為
Cells(a, "D") = Val(Cells(a, [尚存餘額欄].Column)) - Val(Cells(a, [使用金額欄].Column))
則 D欄 裡便會一一的幫我做相減後之餘額..
可是這樣一來又違背了當初就是擔心欄位錯位的問題..
於是我又用了
sheets(1).select
然後才接Cells(a, [淨額欄.Column) = Val(Cells(a, [尚存餘額欄].Column)) - Val(Cells(a, [使用金額欄].Column))
結果問題一樣..出在 [淨額欄] 這個地方
之後我把它修改
Cells(a, Range("淨額欄").Column) = Val(Cells(a, [尚存餘額欄].Column)) - Val(Cells(a, [使用金額欄].Column))
執行就OK了..
可是這樣很奇怪,我查了書本,發現 range可以省略..就如同您的回覆一樣用 [ ] 即可...
可是我用 [ ] 卻會一直出錯,而後方的相減用 [ ] 卻又可以正常執行....= ="""
至於 val 這物件是什麼..怎麼這麼好用..
本來我還以為是大大你漏打前方的val,所以我加回去變成如下
val(Cells(a, [淨額欄.Column))= Val(Cells(a, [尚存餘額欄].Column)) - Val(Cells(a, [使用金額欄].Column))
可惜的還是出錯..哈哈..功夫不到家..真慚愧了..
我待會再來查查..還是要在說聲謝謝你..真幫了我一個很大且放了多年的大忙了~~
(怪,改了老半天,底色一直呈綠底...)= ="""
|
|