Board logo

標題: [發問] 儲存格自動update [打印本頁]

作者: john2006168    時間: 2010-5-30 01:08     標題: 儲存格自動update

A

john&ABC01
john&ABC01

D7係人手輸入,我想問問,如果我先在A1輸入ABC01之後  儲存格自動變成  john&ABC01
應該怎樣寫?     
    Dim myRng(1 To 1003) As Range
    Dim i             As Long
    For j= 1 To 1003
        
Set john=D7
Set myRng(j) = Cells(j, 1)      
    Next
    Cells.Clear                                 
   myRng(1).Value = "john&ABC01"              
    myRng(2).Value = "john&ABC02""
           
End Sub
作者: Min    時間: 2010-5-30 14:00

是這樣嗎?
private sub worksheet_selectionchange(byval target as range)
    target.value = "john" & target.value
end sub
作者: john2006168    時間: 2010-6-5 01:01

是的,今天工作一天比較累......
我是說

D7是會改變的 今天是D7=JOHN
明天可能是D7=PETER
如果.A5輸入ABC01,A5儲存格是否可以自動變成JOHNABC01
作者: john2006168    時間: 2010-6-5 01:06

當然我可以 以EXCEL公式 A10="D7"&"A5",再COPY去A5不過這樣就比較煩.
作者: victorl    時間: 2010-6-5 02:41

本帖最後由 victorl 於 2010-6-5 02:44 編輯

回復 6# john2006168

參考一下
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$D$7" And InStr(Target.Value, Range("D7").Value) = 0 Then Target.Value = [D7] & Target.Value
End Sub
說明:
1. Target.Address <> "$D$7"      D7儲存格變更不能觸發Worksheet_Change事件
2. InStr(Target.Value, Range("D7").Value) = 0     避免重複觸發Worksheet_Change事件
3. 除D7儲存格之外只要內容變更均會依  樓主的需求變更內容
作者: Hsieh    時間: 2010-6-5 09:01

本帖最後由 Hsieh 於 2010-6-5 14:15 編輯

回復 9# victorl
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Not Target.Address Like "$A$*" Then Exit Sub '不是在A欄輸入就退出
  3. Application.EnableEvents = False '關閉觸發事件程序
  4.     Target = [D7] & Target
  5. Application.EnableEvents = True '開啟觸發事件程序
  6. End Sub
複製代碼

作者: victorl    時間: 2010-6-5 13:12

回復 10# Hsieh


    感謝  Hsieh大,受教了。
作者: GBKEE    時間: 2010-6-5 14:36

If Not Target.Address Like "$A$*" Then Exit Sub '不是在A欄輸入就退出
Hsieh 發表於 2010-6-5 09:01

一樣的效果  If Target.Column <> 1 Then Exit Sub '不是在A欄輸入就退出
作者: Hsieh    時間: 2010-6-6 00:11

回復 14# john2006168


    是怎樣不行?是不能清空嗎?
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Not Target.Address Like "$A$*" Or Target = "" Then Exit Sub '不是在A欄輸入就退出
  3. Application.EnableEvents = False '關閉觸發事件程序
  4.     Target = [D7] & Target
  5. Application.EnableEvents = True '開啟觸發事件程序
  6. End Sub
複製代碼

作者: GBKEE    時間: 2010-6-6 06:59

    是可以,不過如果有delete就不行了.   是刪除儲存格嗎? 是會有問題
john2006168 發表於 2010-6-5 23:03

是儲存格="" 嗎?
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Column <> 1 Then Exit Sub '不是在A欄輸入就退出
  3. Application.EnableEvents = False '關閉觸發事件程序
  4. If Target <> "" Then Target = [D7] & Target
  5. Application.EnableEvents = True '開啟觸發事件程序
  6. End Sub
複製代碼

作者: john2006168    時間: 2010-6-7 23:57

回復 16# GBKEE

yes刪除儲存格,就不行



回復 15# Hsieh


    因為有時候打錯,清空儲存格就不行了
作者: GBKEE    時間: 2010-6-8 07:32

回復 12# john2006168
If Target <> "" Then Target = [D7] & Target
以上程式碼 紅色文字 [儲存格不為空白] 的條件成立時 執行 Target = [D7] & Target
作者: john2006168    時間: 2010-6-9 23:59

多謝2位老師




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)