-
Đổi tên hàng loạt textbox trong report
NguyenDungAnh > 05-09-18, 10:23 AM
Chào mọi người em có ý tưởng như thế này nhưng không biết thực hiện thế nào.
Em tạo một cái report có nhiều ô textbox
Giờ em muốn đổi tên text100-> text150 thành a0-a50 (những tên textbox khác thì giữ nguyên) thì có cánh nào viết code đổi hàng loạt những tên đó một lúc không. -
RE: Đổi tên hàng loạt textbox trong report
ongke0711 > 05-09-18, 12:03 PM
Bạn thiết kế form gì mà cần nhiều textbox dữ vậy??
Dùng cái sub bên dứoi đổi tên: copy vào module
- Chú ý là phải mở cái Form cần đổi tên textbox ở chế độ Design rồi chạy cái sub này.
- VD: Call DoiTenTxtBox ("Form1")
Public Sub DoiTenTxtBox(FormName As String)
Dim frm As Form
Dim ctl As Control
Dim i As Integer, j As Integer
Set frm = Forms(FormName)
j = 0
For i = 100 To 150
For Each ctl In frm.Controls
If ctl.ControlType = acTextBox And ctl.Name = "Text" & i Then
ctl.Name = "a" & j
GoTo skip
End If
Next ctl
j = j + 1
skip:
Next i
End Sub -
RE: Đổi tên hàng loạt textbox trong report
NguyenDungAnh > 05-09-18, 03:14 PM
Em tạo report bác ạ!
Tạo kiểu nhập xuất tồn nhập xuất tồn nhập xuất tồn ..... ấy.
Em nghĩ ra cách làm kiểu ấy rồi, xong em sẽ share các bác xem giúp nhé. -
RE: Đổi tên hàng loạt textbox trong report
mrsiro > 05-09-18, 04:06 PM
cái lệnh skip: là để làm gì vậy bạn. -
RE: Đổi tên hàng loạt textbox trong report
ongke0711 > 05-09-18, 07:56 PM
(05-09-18, 04:06 PM)mrsiro Đã viết: cái lệnh skip: là để làm gì vậy bạn.
Nó không phải lệnh mà là Label "skip". Tôi đặt tên gợi nhớ thôi. Bạn muốn đặt tên gì cũng được.
Bạn ngâm cứu câu lênh:
On Error Goto <label>:
Link: http://www.cpearson.com/excel/errorhandling.htm
"GoTo skip" là để code sau khi xử lý xong dòng code "ctl.Name =..." ở trên sẽ nhảy tới dòng (line) chứa Label "skip" và xử lý các dòng code thuộc Label "skip" này.
Trong câu lệnh ở trên sau khi duyệt qua (vòng lặp) các "Control" trên Form, nếu tìm thấy textbox có Name là "Text100" thì gán Name = a0 sau đó nhảy qua biến i kế tiếp để xử lý. Nếu không nhảy ngay thì code sẽ tiếp tục duyệt tiếp các control còn lại để tìm "text100" nữa, mà text100 này chỉ có một, đã tìm thấy rồi thì thôi, nhảy qua text101 để tìm tiếp khỏi mất thời gian duyệt hết vòng lặp