Tạo nút lệnh hàng loạt cho các object trong form

Liên hệ QC

HoangHacVT

Thành viên chính thức
Tham gia
3/6/09
Bài viết
82
Được thích
41
Nghề nghiệp
Marketing và bất cứ thứ gì người đẹp nhờ
Chào nhà GPE,
Mình có 1 form trong đó có khá nhiều textbox và combobox dùng để nhập liệu. Thế nhưng có những lúc mình mốn xóa hết những text đó đi để nhập lại thì hơi khó khăn do mình tạo một nút lệnh combo để khi click vào thì lần lượt textbox1.value = “” cứ tiếp tục như vậy cho đến textbox20 chẳng hạn. Nhưng làm vậy thì hơi “chán phèo”, vậy có cách viết code nào mà khi click một cái thì tất cả object trong form (trừ các label) đều empty hết không?
Mong ACE giúp dùm,
Cám ơn,
Hạc
 

File đính kèm

Chào nhà GPE,
Mình có 1 form trong đó có khá nhiều textbox và combobox dùng để nhập liệu. Thế nhưng có những lúc mình mốn xóa hết những text đó đi để nhập lại thì hơi khó khăn do mình tạo một nút lệnh combo để khi click vào thì lần lượt textbox1.value = “” cứ tiếp tục như vậy cho đến textbox20 chẳng hạn. Nhưng làm vậy thì hơi “chán phèo”, vậy có cách viết code nào mà khi click một cái thì tất cả object trong form (trừ các label) đều empty hết không?
Mong ACE giúp dùm,
Cám ơn,
Hạc

Xóa trống textbox

Mã:
Private Sub CommandButton1_Click()
Dim i As Long
For i = 1 To 48
  Cells(i, 1) = Controls("textbox" & i)
  Controls("textbox" & i) = ""
Next

End Sub

Phục hồi TextBox

Mã:
Private Sub CommandButton2_Click()
Dim i As Long
For i = 1 To 48
  Controls("textbox" & i) = Cells(i, 1)
  Cells(i, 1) = ""
Next

End Sub

Lưu ý là 48 textbox của bạn phải có tên tương ứng như sau:

TextBox1, TextBox2, ... TextBox48
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Xóa trống textbox

Mã:
Private Sub CommandButton1_Click()
Dim i As Long
For i = 1 To 48
Cells(i, 1) = Controls("textbox" & i)
Controls("textbox" & i) = ""
Next

End Sub

Phục hồi TextBox

Mã:
Private Sub CommandButton2_Click()
Dim i As Long
For i = 1 To 48
Controls("textbox" & i) = Cells(i, 1)
Cells(i, 1) = ""
Next

End Sub

Lưu ý là 48 textbox của bạn phải có tên tương ứng như sau:

TextBox1, TextBox2, ... TextBox48

Kakaka, hết xẩy!. Nhưng mà cách này mượn hết cột A trong sheet excel của tớ rồi. Lỡ trong cột này tớ có dữ liệu khác thì toi bạn ơi. Chỉ giúp tớ cách nếu mượn một cột trong excel thì mượn ở cái sheet "tam" với, cách này thì hễ đang mở sheet nào là nó nhào dzô mượn cột của sheet đó.

Cám ơn nhiều nhe!
Hạc,
 
Upvote 0
Kakaka, hết xẩy!. Nhưng mà cách này mượn hết cột A trong sheet excel của tớ rồi. Lỡ trong cột này tớ có dữ liệu khác thì toi bạn ơi. Chỉ giúp tớ cách nếu mượn một cột trong excel thì mượn ở cái sheet "tam" với, cách này thì hễ đang mở sheet nào là nó nhào dzô mượn cột của sheet đó.

Cám ơn nhiều nhe!
Hạc,
Chẳng cần "mượn tạm" cái gì cả! Cứ cho mọi thứ vào 1 mảng là xong!
PHP:
Dim Arr()
Private Sub CommandButton1_Click()
  Dim Ctl As Control, i As Long
  For Each Ctl In Me.Controls
    If TypeName(Ctl) = "TextBox" Then
      If Ctl.Value <> "" Then
        ReDim Preserve Arr(i)
        Arr(i) = Ctl.Value
        Ctl.Value = ""
        i = i + 1
      End If
    End If
  Next
End Sub
PHP:
Private Sub CommandButton2_Click()
  Dim Ctl As Control, i As Long
  On Error Resume Next
  For Each Ctl In Me.Controls
    If TypeName(Ctl) = "TextBox" Then
      Ctl.Value = Arr(i)
      i = i + 1
    End If
  Next
End Sub
--------------------
Lưu ý về Code của Doom
- Chỉ cần bấm CommandButton1 từ 2 lần trở lên thì đừng có mơ mà phục hồi gì cả nhé!
- Hoặc lần đầu mà bấm nút CommandButton2 thì cũng.. toi luôn
Ẹc... Ẹc...
Thêm nữa: Dùng TypeName thì chẳng cần phải lo lắng TextBox là tên gì cả, số lượng TextBox là bao nhiêu cũng chơi tuốt (miễn nó đúng là TextBox)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bác ndu96081631 cũng hết xảy luôn. Bác cho mình hỏi, là trong code của bác, nếu mình thay typename "Textbox" bằng "ComBoBox" chẳng hạn thì nó sẽ đúng với combobox chứ? ( Trong rowsource của combobox có dòng giá trị rỗng).

Cám ơn bác nhiều,
Hạc
 
Upvote 0
Bác ndu96081631 cũng hết xảy luôn. Bác cho mình hỏi, là trong code của bác, nếu mình thay typename "Textbox" bằng "ComBoBox" chẳng hạn thì nó sẽ đúng với combobox chứ? ( Trong rowsource của combobox có dòng giá trị rỗng).

Cám ơn bác nhiều,
Hạc
Mấy câu hỏi thuộc dạng này bạn cứ tự mình suy đoán, rồi tự mình thí nghiệm và tự mình rút ra kết luận ---> Khỏi cần hỏi (làm sẽ nhớ lâu)
Chỉ chú ý 1 điểm: Có vài Control không có thuộc tính Value (chẳng hận là Label) mà thay bẳng thuộc tính Caption ---> Chú ý kẻo báo lỗi mà chẳng biết là tại cái gì
 
Upvote 0
Web KT

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

Back
Top Bottom