【发布时间】:2018-10-30 15:56:42
【问题描述】:
我有一个用户表单,其中我为 7 列放置了 10 行组合框。这意味着我总共有 70 个组合框。为了便于理解,我将第一个组合框称为 (1,1) for (row,column)。
我想要做的是,当用户在第 1 行的任何组合框上输入值时,我希望将这些值复制到第 2 行的相邻组合框中。
例如,如果我在 (1,3) 上选择值,相同的值将出现在 (2,3) 上。第 3 行和第 4 行、第 5 行和第 6 行等也是如此。
这是我的类模块clsLineCopy上的代码:
Public WithEvents myCbo As msForms.ComboBox
Private Sub myCbo_Change()
Dim i As Integer
'MsgBox "Combo Box " & myCbo.Value & " has changed"
If myCbo.Value <> "" Then
myCbo.Copy
myCbo.Paste
End If
End Sub
这是我在 userform_initialize 上的代码:
Dim myCommonCbo As New Collection
Dim cbo As clsLineCopy
For i = 1 To 70
Set cbo = New clsLineCopy
Set cbo.myCbo = Me.Controls("ComboBox" & i)
myCommonCbo.Add Item:=cbo
Next i
Set cbo = Nothing
我知道我在类模块中的代码是错误的,因为我对此一无所知。
谢谢, 伊兹。
【问题讨论】:
-
当您使用
mybo.Copy和myCbo.Paste时,没有代码或指示您打算粘贴到哪里。您可能必须告诉每个clsLineCopy对象要将数据传输到哪个clsLineCopy对象。
标签: excel vba combobox userform