作者edmund71405 (饼乾小舖)
看板Office
标题[问题] OLEObjects自动清空阵列?
时间Wed Jun 1 17:14:35 2022
(若是和其他不同软体互动之问题 请记得一并填写)
软体: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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 2.58.242.156 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1654074877.A.BE9.html