我已经创建了一个“RightToLeft”属性为True的userform。我已经创建了一个列表框,它的“TextAlign”属性是‘3-fmTextAlignRight’。列表框包含两列和两行,其文本长度大于列表框大小,因此我设置了“ColumnWidths”属性以查看所有文本。
我有两个问题:


我的旋转按钮的VBA代码:
Private Sub SpinButton1_SpinDown()
Call SwapBetweenTwoLines(False, ListBox1)
End Sub
Private Sub SpinButton1_SpinUp()
Call SwapBetweenTwoLines(True, ListBox1)
End Sub
Sub SwapBetweenTwoLines(up As Boolean, listbox)
Dim index As Integer, new_index As Integer
index = listbox.ListIndex
If (((up = True) And (index > 0)) Or _
((up = False) And (index < listbox.ListCount - 1))) Then
If (up = True) Then
new_index = index - 1
Else
new_index = index + 1
End If
Dim key As String, value As String
key = listbox.Column(0, index)
value = listbox.Column(1, index)
listbox.Column(0, index) = listbox.Column(0, new_index)
listbox.Column(1, index) = listbox.Column(1, new_index)
listbox.Column(0, new_index) = key
listbox.Column(1, new_index) = value
listbox.Selected(new_index) = True
End If
End Sub谢谢你的帮助..。
发布于 2012-12-18 22:38:36
我成功地解决了第二个问题。
我应该在插入值之前编写最后一个命令(listbox.Selected(new_index) = True),而不是后面。
有人能解决第一个问题吗?
谢谢..。
https://stackoverflow.com/questions/13829415
复制相似问题