【求助】EXCEL 怎樣自動抓取儲存格位置?



贊助商連結


deepblue
2004-02-06, 09:05 PM
想要請教一下
如果我想要使用自動抓取儲存格位置的功能
需要使用哪一個屬性?
address?addresslocal?
抓出來的$A$1要怎樣使用?
還有可以不可以舉出如何使用的範例?
多謝指導!

贊助商連結


leonchou
2004-02-06, 10:51 PM
Cells(1, 1).Address ==> "$A$1"
Cells(1, 1).Address(0, 0) ==> "A1"
選取A1:C5, Selection.Address(0, 0) ==> "A1:C5"

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A1" Then Exit Sub
......
End Sub

傳回值是一個儲存格位置的字串.
要用在何處, 範圍太廣很難敍述..
不如說說你想做什麼. :)

deepblue
2004-02-07, 12:09 AM
比如說
我現在選取C5這一個儲存格
想要設計一個指令可以自動變更A5這一個儲存格的內容(顏色等等!)
不知道要怎樣設計?

然後假如我選取M6 的話A6 的儲存格也會跟著變化

假如要這樣的話
應該是要用到cell吧?
如此一來應該是要知道列的數字吧?
欄位的話就可以設定為 1 了
cells(rows,1)
不知道要怎樣取得rows的數字?

leonchou
2004-02-07, 03:13 AM
需以 Event 實現此功能..

如果只能選一格, 可這樣寫 --
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Cells(Target.Row, 1).Font.Color = vbRed
End Sub

如果允許選多格, 可這樣寫 --
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.EntireRow.Columns(1).Font.Color = vbRed
End Sub

這是工作表事件, 要放在 sheet 模組之中.

deepblue
2004-02-07, 07:28 AM
多謝您了
我試試看
如果有問題再請教您:D

deepblue
2004-02-07, 06:36 PM
再想要請教一下
假如我想要做一個可以自動變更顏色的巨集要怎樣設定

比如果
我現在選取D3
A3會變為紅色
但是如果我離開了D3的話
A3會變回原本的顏色?

leonchou
2004-02-07, 10:36 PM
由於無法得知前次選哪一格,這可分兩種情形:
1. A欄其他格都設為預設顏色 (黑色),這個好辦。
2. A欄其他格原本不一定是黑色字。欲保留原來顏色就需要一點技巧。

以下範例是在只能選一格的前提下 --

第 1 種情形:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Me.UsedRange.Columns(1).Font.Color = vbBlack
Cells(Target.Row, 1).Font.Color = vbRed
End Sub

第 2 種情形:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static pre_addr, pre_color
If Target.Count > 1 Then Exit Sub
On Error Resume Next
Range(pre_addr).Font.Color = pre_color
With Cells(Target.Row, 1)
pre_addr = .Address
pre_color = .Font.Color
.Font.Color = vbRed
End With
End Sub

解釋:
用 Static 宣告變數可使其值保留在記憶體中而不消失。
Static 只限於程序層次 (如 Sub) 中使用。
在此例中用 pre_addr 及 pre_color 保留前次 A 欄的位址及顏色。
但第1次使用時因 pre_addr 及 pre_color 沒有值會發生錯誤,
所以利用 On Error 來略過此錯誤。

大家若有其他不同的方法,歡迎提出來討論。 :)

leonchou
2004-02-07, 10:44 PM
有個 "儲存格模擬checkbox" 的例子,
有異曲同工之妙,有興趣可參考。
http://qa1.pcuser.com.tw/total_view.asp?CurNumber=339576

leonchou
2004-02-08, 04:14 PM
這裡有其他方式可以參考:
http://www.excelhelp.net/cgi-bin/forum/topic.cgi?forum=8&topic=2245
"格式化條件"方式的想法很好,程式也很精簡。
但不知是什麼原因,執行起來會稍有延遲的感覺...

anyway, 提供參考。

jute
2004-02-10, 05:17 PM
嗯...小弟剛好也有個類似的問題...
不過我另外開個討論串好了:D