[算表] VBA的Array問題...

看板Office作者 (十戒*行屍走肉)時間5年前 (2021/02/06 23:44), 5年前編輯推噓0(006)
留言6則, 1人參與, 5年前最新討論串1/1
軟體: Excel 版本: 2013 VBA新手快被陣列搞昏惹Q_Q 我有一個UserForm如下,大意上就是有兩個TextBox 然後按輸入之後會把TextBox_A和TextBox_B放到TextBox_Total裡面 而因為這兩個值之後還會有用,所以要把兩個值順便放進arr1()和arr2()裡面 ┌─────────┐ ┌─────────┐ │┌───────┐│ │┌───────┐│ ││ TextBox_A ││ ││TextBox_Total1││ │└───────┘│ │└───────┘│ │┌───────┐│ │┌───────┐│ ││ TextBox_B ││ ││TextBox_Total2││ │└───────┘│ │└───────┘│ │ ┌────┐│ └─────────┘ │ │ 輸入 ││ │ └────┘│ └─────────┘ VBA如下: Dim arrA() as string Dim arrB() as string If TextBox_A <> "" and TextBox_B <> "" then If TextBox_Total1 = "" then ReDim Preserve arrA(1) arrA(1) = TextBox_A ReDim Preserve arrB(1) arrB(1) = TextBox_B TextBox_Total1 = TextBox_A & TextBox_B Else ReDim Preserve arrA(2) arrA(2) = TextBox_A ReDim Preserve arrB(2) arrB(2) = TextBox_B TextBox_Total2 = TextBox_A & TextBox_B End If End If 當我Run第一次的時候,arrA(1) = TextBox_A和arrB(1) = TextBox_B都很正常 當輸入第二組時,arrA(2) = TextBox_A和arrB(2) = TextBox_B也是正常 !!!!!!But!!!!!!!!! 這時候的arrA(1)和arrB(1)的值卻變成空白了Q___Q這是怎麼回事 ReDim有加上Preserve不是應該會保留前面陣列中的值嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.185.248.104 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1612626254.A.492.html

02/07 08:43, 5年前 , 1F
將二個變數的宣告移出觸發程序,放置最上方
02/07 08:43, 1F

02/07 08:43, 5年前 , 2F
模擬上除了將變數移置外,TextBox_Total2前面有調整再連接
02/07 08:43, 2F

02/07 08:43, 5年前 , 3F
arrA(1)和arrB(1)的部分
02/07 08:43, 3F

02/07 08:43, 5年前 , 4F
02/07 08:43, 4F
我這段Code是在Private Sub Buttom_Click()底下的 如果要把Dim arrA() 和 Dim arrB()移到UserForm的其他Sub底下 反而會提示說arrA(1) arrB(1)沒有定義變數耶@@a

02/07 11:36, 5年前 , 5F
我回文已經寫了"放置最上方"
02/07 11:36, 5F

02/07 11:43, 5年前 , 6F
並沒有要原po移到其他sub底下,就是移置到最上方
02/07 11:43, 6F
喔喔喔!!!原來可以這樣放@@!!! 我一直以為所有的Code就是要放在Sub ~ End Sub這中間 太感謝惹XDDD這樣可以順便整理一下我的Code了 ※ 編輯: tinkens (111.185.248.104 臺灣), 02/07/2021 11:46:25
文章代碼(AID): #1W7hbEII (Office)
文章代碼(AID): #1W7hbEII (Office)