Board logo

標題: 請教程式連動問題 [打印本頁]

作者: owen06    時間: 2014-1-21 00:02     標題: 請教程式連動問題

各位先進好,小弟最近試著用YESWIN做一個DDE連結表如附件
想請問一下,該如何去修改語法內容,才能讓我在變更工作表第一列的欄位標題的時候,
下面的內容也可以跟著做連動變化呢?
假設我本來B欄標題是股名,我直接把"股名"改成"類別",
那麼「Target.Offset(0, 1) = "=YES|DQ!'" & Target & 股名 」這一句,
就會自己變成「Target.Offset(0, 1) = "=YES|DQ!'" & Target & 類別 」,工作表裡B欄就能主動帶出該股的類別,
煩請各位高手不吝賜教,謝謝~
程式代碼如下
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim 股名, 成交價, 開盤, 高, 低, 漲停, 跌停, 漲跌, 類別 As String
  3. 股名 = ".Name'"
  4. 成交價 = ".Price'"
  5. 開盤 = ".Open'"
  6. 高 = ".High'"
  7. 低 = ".Low'"
  8. 漲停 = ".Ceil'"
  9. 跌停 = ".Floor'"
  10. 漲跌 = ".Change'"
  11. 類別 = ".GroupName'"
  12. If Target.Column = 1 And Target.Row > 1 Then
  13.     On Error Resume Next
  14.     If Target <> "" Then
  15.     Target.Offset(0, 1) = "=YES|DQ!'" & Target & 股名
  16.     Target.Offset(0, 2) = "=YES|DQ!'" & Target & 成交價
  17.     Target.Offset(0, 3) = "=YES|DQ!'" & Target & 開盤
  18.     Target.Offset(0, 4) = "=YES|DQ!'" & Target & 高
  19.     Target.Offset(0, 5) = "=YES|DQ!'" & Target & 低
  20.     Target.Offset(0, 6) = "=YES|DQ!'" & Target & 漲停
  21.     Target.Offset(0, 7) = "=YES|DQ!'" & Target & 跌停
  22.     Else: Target.Offset(0, 1).Resize(1, 7) = ""
  23.     End If
  24. End If
  25. End Sub
複製代碼

作者: GBKEE    時間: 2014-1-21 08:19

「Target.Offset(0, 1) = "=YES|DQ!'" & Target & 股名 」這一句,
就會自己變成「Target.Offset(0, 1) = "=YES|DQ!'" & Target & 類別 」,工作表裡B欄就能主動帶出該股的類別owen06 發表於 2014/1/21 00:02

有何問題,直接改一下不就成了.
作者: Hsieh    時間: 2014-1-21 10:00

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Set d = CreateObject("Scripting.Dictionary")
  3. d("股名") = ".Name'"
  4. d("成交價") = ".Price'"
  5. d("開盤") = ".Open'"
  6. d("高") = ".High'"
  7. d("低") = ".Low'"
  8. d("漲停") = ".Ceil'"
  9. d("跌停") = ".Floor'"
  10. d("漲跌") = ".Change'"
  11. d("類別") = ".GroupName'"
  12. If Target.Column = 1 And Target.Row > 1 Then
  13.     On Error Resume Next
  14.     If Target <> "" Then
  15.     Target.Offset(0, 1) = "=YES|DQ!'" & Target & d([B1].Value)
  16.     Target.Offset(0, 2) = "=YES|DQ!'" & Target & d([C1].Value)
  17.     Target.Offset(0, 3) = "=YES|DQ!'" & Target & d([D1].Value)
  18.     Target.Offset(0, 4) = "=YES|DQ!'" & Target & d([E1].Value)
  19.     Target.Offset(0, 5) = "=YES|DQ!'" & Target & d([F1].Value)
  20.     Target.Offset(0, 6) = "=YES|DQ!'" & Target & d([G1].Value)
  21.     Target.Offset(0, 7) = "=YES|DQ!'" & Target & d([H1].Value)
  22.     Else: Target.Offset(0, 1).Resize(1, 7) = ""
  23.     End If
  24. End If
  25. End Sub
複製代碼
回復 1# owen06


    這個意思嗎?
作者: owen06    時間: 2014-1-21 12:29

本帖最後由 owen06 於 2014-1-21 12:32 編輯

回復 3# Hsieh


哦~是的,就是Hsieh版主所解答的這樣
因為我寫Target.Offset(0, 1) = "=YES|DQ!'" & Target & [B1].Value 一直沒辦法作用
原來是外面再包一層就行了:d([B1].Value)
謝謝版主大大,感激不盡~~~




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