Hữu_Nghĩa
Thành viên mới

- Tham gia
- 2/8/21
- Bài viết
- 0
- Được thích
- 3
mình có 1 Sheet Form( dùng để nhập dữ liệu), ở Ô Chỉ Tiêu mình có làm 1 listBox1 với VBA(mã ở bên dưới).
Ở Ô Chỉ Tiêu sau khi kích vào thì hiện ra bảng listBox1 thì mình chọn mục cần chọn sau đó nhấn Select thì các mục được chọn sẽ vào ô Chỉ Tiêu, sau đó mình cập Nhập dữ liệu, Lúc mình nhập dữ liệu mới thì ở listBox1 có mục mình đã chọn trước đó kg tự xóa đi nên mình phải tích bỏ chọn rất mắc công. Cho mình hỏi có cách nào rest lại các mục đã chọn trước đó để cho tiện việc nhập mới không ạ. Xin cảm ơn.
Mã VBA:
Sub Rectangle1_Click()
'Updated by Extendoffice 20200730
Dim xSelShp As Shape, xSelLst As Variant, I, J As Integer
Dim xV As String
Set xSelShp = ActiveSheet.Shapes(Application.Caller)
Set xLstBox = ActiveSheet.ListBox1
If xLstBox.Visible = False Then
xLstBox.Visible = True
xSelShp.TextFrame2.TextRange.Characters.Text = "Select"
xStr = ""
xStr = Range("ListBoxOutput").Value
If xStr <> "" Then
xArr = Split(xStr, ";")
For I = xLstBox.ListCount - 1 To 0 Step -1
xV = xLstBox.list(I)
For J = 0 To UBound(xArr)
If xArr(J) = xV Then
xLstBox.Selected(I) = True
Exit For
End If
Next
Next I
End If
Else
xLstBox.Visible = False
xSelShp.TextFrame2.TextRange.Characters.Text = "Chi Tieu"
For I = xLstBox.ListCount - 1 To 0 Step -1
If xLstBox.Selected(I) = True Then
xSelLst = xLstBox.list(I) & ";" & xSelLst
End If
Next I
If xSelLst <> "" Then
Range("ListBoxOutput") = Mid(xSelLst, 1, Len(xSelLst) - 1)
Else
Range("ListBoxOutput") = ""
End If
End If
End Sub


Ở Ô Chỉ Tiêu sau khi kích vào thì hiện ra bảng listBox1 thì mình chọn mục cần chọn sau đó nhấn Select thì các mục được chọn sẽ vào ô Chỉ Tiêu, sau đó mình cập Nhập dữ liệu, Lúc mình nhập dữ liệu mới thì ở listBox1 có mục mình đã chọn trước đó kg tự xóa đi nên mình phải tích bỏ chọn rất mắc công. Cho mình hỏi có cách nào rest lại các mục đã chọn trước đó để cho tiện việc nhập mới không ạ. Xin cảm ơn.
Mã VBA:
Sub Rectangle1_Click()
'Updated by Extendoffice 20200730
Dim xSelShp As Shape, xSelLst As Variant, I, J As Integer
Dim xV As String
Set xSelShp = ActiveSheet.Shapes(Application.Caller)
Set xLstBox = ActiveSheet.ListBox1
If xLstBox.Visible = False Then
xLstBox.Visible = True
xSelShp.TextFrame2.TextRange.Characters.Text = "Select"
xStr = ""
xStr = Range("ListBoxOutput").Value
If xStr <> "" Then
xArr = Split(xStr, ";")
For I = xLstBox.ListCount - 1 To 0 Step -1
xV = xLstBox.list(I)
For J = 0 To UBound(xArr)
If xArr(J) = xV Then
xLstBox.Selected(I) = True
Exit For
End If
Next
Next I
End If
Else
xLstBox.Visible = False
xSelShp.TextFrame2.TextRange.Characters.Text = "Chi Tieu"
For I = xLstBox.ListCount - 1 To 0 Step -1
If xLstBox.Selected(I) = True Then
xSelLst = xLstBox.list(I) & ";" & xSelLst
End If
Next I
If xSelLst <> "" Then
Range("ListBoxOutput") = Mid(xSelLst, 1, Len(xSelLst) - 1)
Else
Range("ListBoxOutput") = ""
End If
End If
End Sub

