Cách lưu tên các checkbox tới cell

  • Thread starter Thread starter YêuCN
  • Ngày gửi Ngày gửi
Liên hệ QC

YêuCN

Thành viên thường trực
Tham gia
17/7/19
Bài viết
380
Được thích
142
Cho em hỏi cách lưu tên checkbox được chọn tới các cột từ B đến E tương ứng với tên 4 checkbox trong file đính kèm.
mỗi lần thay đổi tùy chọn checkbox thì các tên checkbox sẽ lại được ghi vào dòng tiếp theo. Mong mọi người góp sức chân thành cảm ơn !
 

File đính kèm

Cho em hỏi cách lưu tên checkbox được chọn tới các cột từ B đến E tương ứng với tên 4 checkbox trong file đính kèm.
mỗi lần thay đổi tùy chọn checkbox thì các tên checkbox sẽ lại được ghi vào dòng tiếp theo. Mong mọi người góp sức chân thành cảm ơn !
Bạn mô tả chi tiết vấn đề, có ví dụ mẫu càng tốt.
 
Upvote 0
Bạn mô tả chi tiết vấn đề, có ví dụ mẫu càng tốt.
Dạ có nghĩa là khi mở form ta chọn một hay nhiều checkbox trên form thì tên các checkbox này sẽ được lưu theo thứ tự từ cột B đến cột E
Ví dụ chỉ chọn checkbox 2, 3 thì tại B1=checkbox2, C1=checkbox3 và khi thay đổi chọn checkbox khác ví dụ chọn checkbox 1,3,4 thìa nó sẽ ghi xuống dòng tiếp theo tương tự cũng bắt đầu từ B2....
 
Upvote 0
Dạ có nghĩa là khi mở form ta chọn một hay nhiều checkbox trên form thì tên các checkbox này sẽ được lưu theo thứ tự từ cột B đến cột E
Ví dụ chỉ chọn checkbox 2, 3 thì tại B1=checkbox2, C1=checkbox3 và khi thay đổi chọn checkbox khác ví dụ chọn checkbox 1,3,4 thìa nó sẽ ghi xuống dòng tiếp theo tương tự cũng bắt đầu từ B2....
Khi nào thì nó sẽ hiểu là bạn chọn checkbox khác?
 
Upvote 0
Dạ có nghĩa là khi mở form ta chọn một hay nhiều checkbox trên form thì tên các checkbox này sẽ được lưu theo thứ tự từ cột B đến cột E
Ví dụ chỉ chọn checkbox 2, 3 thì tại B1=checkbox2, C1=checkbox3 và khi thay đổi chọn checkbox khác ví dụ chọn checkbox 1,3,4 thìa nó sẽ ghi xuống dòng tiếp theo tương tự cũng bắt đầu từ B2....
Bạn thử dùng code này xem sao.
Mã:
Private Sub CommandButton1_Click()
Dim i As Byte, j As Byte, k As Long
With Sheet1
    k = .Range("B1").End(xlDown).Row
    If .Range("B" & k).Value <> "" Then k = k + 1
    j = 0
    For i = 1 To 4
        If Me.Controls("CheckBox" & i).Value = True Then
            .Range("B" & k).Offset(, j).Value = "CheckBox" & i
            j = j + 1
        End If
    Next i
End With
End Sub
 
Upvote 0
Khi nào thì nó sẽ hiểu là bạn chọn checkbox khác?
Mỗi khi mở form ạ
Bài đã được tự động gộp:

Bạn thử dùng code này xem sao.
Mã:
Private Sub CommandButton1_Click()
Dim i As Byte, j As Byte, k As Long
With Sheet1
    k = .Range("B1").End(xlDown).Row
    If .Range("B" & k).Value <> "" Then k = k + 1
    j = 0
    For i = 1 To 4
        If Me.Controls("CheckBox" & i).Value = True Then
            .Range("B" & k).Offset(, j).Value = "CheckBox" & i
            j = j + 1
        End If
    Next i
End With
End Sub
em test lỗi ở đây aCapture.PNG
 
Upvote 0
Upvote 0
Khi bước vào vấn đề lập trình, tôi giành riêng việc viết tắt cho tên biến, hàm,...
Vì vậy, tôi không bao giờ dùng từ ngữ viết tắt ở nới khác, nhất là phần dẫn giải.
Hiểu thử cái này:
tl đ trng c dg pk
 
Upvote 0
dạ nếu check trùng cũng ghi ạ, nếu ko check thì ko ghi ạ
Thử sửa lại thế này.
Mã:
Private Sub CommandButton1_Click()
Dim i As Byte, j As Byte, k As Long
With Sheet1
    If .Range("B1").Value = Empty Then
        k = 1
    Else
        k = .UsedRange.Rows.Count + 1
    End If
    j = 0
    For i = 1 To 4
        If Me.Controls("CheckBox" & i).Value = True Then
            .Range("B" & k).Offset(, j).Value = "CheckBox" & i
            j = j + 1
        End If
    Next i
End With
End Sub
 
Upvote 0
Thử sửa lại thế này.
Mã:
Private Sub CommandButton1_Click()
Dim i As Byte, j As Byte, k As Long
With Sheet1
    If .Range("B1").Value = Empty Then
        k = 1
    Else
        k = .UsedRange.Rows.Count + 1
    End If
    j = 0
    For i = 1 To 4
        If Me.Controls("CheckBox" & i).Value = True Then
            .Range("B" & k).Offset(, j).Value = "CheckBox" & i
            j = j + 1
        End If
    Next i
End With
End Sub
dạ cũng bị ở dòng đó ạ
 
Upvote 0
Thử sửa lại thế này.
Mã:
Private Sub CommandButton1_Click()
Dim i As Byte, j As Byte, k As Long
With Sheet1
    If .Range("B1").Value = Empty Then
        k = 1
    Else
        k = .UsedRange.Rows.Count + 1
    End If
    j = 0
    For i = 1 To 4
        If Me.Controls("CheckBox" & i).Value = True Then
            .Range("B" & k).Offset(, j).Value = "CheckBox" & i
            j = j + 1
        End If
    Next i
End With
End Sub
Code này đúng với đòi hỏi "không check không ghi", nhưng thớt quên sự thực là nếu tôi xoá hết các checkboxes thì cũng là 1 lần thay đổi.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom