[問題] OLEObjects自動清空陣列?

作者: edmund71405 (餅乾小舖)   2022-06-01 17:14:35
(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體:EXCEL
版本:2010
測試代碼如下
Dim DataDetel()
定義公用陣列DataDetel
Private Sub Worksheet_Activate()
If GetData() Then
DataDetel() = data()
Combobox1.Column = DataDetel()
End If
說明一下GetData是從資料庫取得資料
放到公用陣列DataDetel裡面
且將資料的第一列放到Combobox1的下拉列表中
For i = 21 To UBound(DataDetel, 2)
Range("B" & i) = DataDetel(0, i - 21)
Range("C" & i) = DataDetel(4, i - 21)
Range("D" & i) = DataDetel(1, i - 21)
Set xobj = Me.OLEObjects.Add("forms.checkbox.1")
With xobj
.Top = Range("A" & i).Top
.Left = Range("A" & i).Left
.Height = Range("A" & i).Height
.Width = Range("A" & i).Width
.name = "C_" & DataDetel(6, i - 21)
.Object.Caption = ""
End With
Set xobj = Nothing
Next
用VBA建立核取方塊,並以DataDetel的第六列資料作為控件名稱
End Sub
Private Sub Combobox1_Change()
當我在此想要取用DataDetel的值時,卻發現陣列已經被清空
如果註解OLEObject整段代碼就能夠在此正常的使用陣列資料
是為何?要如何解決這個問題?
另外詢問只要使用OLEObject就進不了中斷怎麼除錯?
End Sub

Links booklink

Contact Us: admin [ a t ] ucptt.com