Chuyên đề giải đáp những thắc mắc về code VBA

Liên hệ QC

maytinhvp01

Thành viên thường trực
Tham gia
27/7/13
Bài viết
390
Được thích
179
Mình muốn nhờ giải thich câu lệnh " If Ran.Cells(d, c) > max Then max = Ran.Cells(d, c) "
trong ví du:
Public Function LonNhat(Ran As Range)
Dim max As Double, v As Integer, d As Integer, c As Integer
max = Ran.Cells(1, 1)
For d = 1 To Ran.Rows.Count
For c = 1 To Ran.Columns.Count
If Ran.Cells(d, c) > max Then max = Ran.Cells(d, c)
Next c
Next d
v = Tim(max, Ran)
LonNhat = max
End Function
-------------------------------------------------------
[INFO1]Thông báo:
Vì topic này:
http://www.giaiphapexcel.com/forum/...ải-thích-các-code-đề-nghị-các-bạn-gửi-vào-đây
đã quá dài nên BQT đóng lại.
Nay tôi mở topic mới với cùng chủ đề: GIẢI THÍCH NHỮNG THẮC MẮC VỀ CODE
Các bạn nếu có nhu cầu giải thích code, vui lòng post tại đây nhé
NDU96081631

[/INFO1]
 
Chỉnh sửa lần cuối bởi điều hành viên:
Chào anh chị!
Mình mới gia nhập GPE. Hiện mình muốn học về lập trình(về VBA, macro, access) các bạn có tài liệu nào chia sẻ cho mình với nhé!
Tks!
 
Upvote 0
Chào anh chị!
Mình mới gia nhập GPE. Hiện mình muốn học về lập trình(về VBA, macro, access) các bạn có tài liệu nào chia sẻ cho mình với nhé!
Tks!
Diễn đàn GPE có cả 1 kho tài liệu khổng lồ, chưa đủ để bạn học tập & nghiên cứu à?
 
Upvote 0
Kính gửi anh chị đồng môn yêu thích VBA trong Excel

Mình có một vấn đề nhờ anh chị giúp đở.

Số là mình có làm 1 form nhập liệu bằng với VBA. Khi mình lấy giá trị từ 1 label. Giá trị mình lấy nó ở dạng text. Mình muốn lấy giá trị từ label nhưng ở dạng số number.

Mong các bạn cho xin cao kiến.
 
Upvote 0
Kính gửi anh chị đồng môn yêu thích VBA trong Excel

Mình có một vấn đề nhờ anh chị giúp đở.

Số là mình có làm 1 form nhập liệu bằng với VBA. Khi mình lấy giá trị từ 1 label. Giá trị mình lấy nó ở dạng text. Mình muốn lấy giá trị từ label nhưng ở dạng số number.

Mong các bạn cho xin cao kiến.
Dùng lệnh này thử xem.
Mã:
Val(Label1.Caption)
 
Upvote 0
Số là mình có làm 1 form nhập liệu bằng với VBA. Khi mình lấy giá trị từ 1 label. Giá trị mình lấy nó ở dạng text. Mình muốn lấy giá trị từ label nhưng ở dạng số number.
Mong các bạn cho xin cao kiến.

Kiến lữa của mình là: Sao bạn lại lấy từ Label, mà không là TextBox hay ComboBox?
 
Upvote 0
Kính gửi anh chị đồng môn yêu thích VBA trong Excel

Mình có một vấn đề nhờ anh chị giúp đở.

Số là mình có làm 1 form nhập liệu bằng với VBA. Khi mình lấy giá trị từ 1 label. Giá trị mình lấy nó ở dạng text. Mình muốn lấy giá trị từ label nhưng ở dạng số number.

Mong các bạn cho xin cao kiến.
.value nhé bạn, format của cells bạn muốn nhập data vào phải ở dạng number.
 
Upvote 0
Kính gửi anh chị đồng môn yêu thích VBA trong Excel

Mình có một vấn đề nhờ anh chị giúp đở.

Số là mình có làm 1 form nhập liệu bằng với VBA. Khi mình lấy giá trị từ 1 label. Giá trị mình lấy nó ở dạng text. Mình muốn lấy giá trị từ label nhưng ở dạng số number.

Mong các bạn cho xin cao kiến.

Bạn thử dùng hàm Val để convert từ Số được lưu dưới dạng text sang Number chưa?
 
Upvote 0
Hàm Val có tính rất dễ dãi. Tự bẫy lỗi và tự bỏ đi những chỗ không dịch được.
Vì vậy dùng hàm này nên cẩn thận.

Nếu biết loại số của mình thì dùng hàm CInt, CLng, CDbl và code bẫy lỗi sẽ an toàn hơn.
 
Upvote 0
Em chào A/C!
Em đang tạo code để Clear filter một loạt các sheets trong file, đang ở chế độ filter. Hiện tại nếu các sheet đều filter thì code chạy được. Nhưng nếu sheet nào đó ko filter thì code bị lỗi và dừng lại. A/C sửa hoặc bổ sung giúp Em cách bẫy lỗi trường hợp ko Filter thì next sang các sheet tiếp theo. Cảm ơn A/C nhiều!

Mã:
Sub ClearAllSheet()
On Error Resume Next
Sheet16.Select ActiveSheet.ShowAllData
Sheet2.Select ActiveSheet.ShowAllData
Sheet4.Select ActiveSheet.ShowAllData
Sheet5.Select ActiveSheet.ShowAllData
Sheet6.Select ActiveSheet.ShowAllData
Sheet9.Select ActiveSheet.ShowAllData
Sheet13.Select ActiveSheet.ShowAllData
Sheet14.Select ActiveSheet.ShowAllData
Sheet15.Select ActiveSheet.ShowAllData
Sheet16.Select ActiveSheet.ShowAllData
Sheet17.Select ActiveSheet.ShowAllData
Sheet19.Select ActiveSheet.ShowAllData
Sheet21.Select ActiveSheet.ShowAllData
Sheet22.Select ActiveSheet.ShowAllData
End Sub
 
Upvote 0
Em chào A/C!
Em đang tạo code để Clear filter một loạt các sheets trong file, đang ở chế độ filter. Hiện tại nếu các sheet đều filter thì code chạy được. Nhưng nếu sheet nào đó ko filter thì code bị lỗi và dừng lại. A/C sửa hoặc bổ sung giúp Em cách bẫy lỗi trường hợp ko Filter thì next sang các sheet tiếp theo. Cảm ơn A/C nhiều!

Mã:
Sub ClearAllSheet()
On Error Resume Next
Sheet16.Select ActiveSheet.ShowAllData
Sheet2.Select ActiveSheet.ShowAllData
Sheet4.Select ActiveSheet.ShowAllData
Sheet5.Select ActiveSheet.ShowAllData
Sheet6.Select ActiveSheet.ShowAllData
Sheet9.Select ActiveSheet.ShowAllData
Sheet13.Select ActiveSheet.ShowAllData
Sheet14.Select ActiveSheet.ShowAllData
Sheet15.Select ActiveSheet.ShowAllData
Sheet16.Select ActiveSheet.ShowAllData
Sheet17.Select ActiveSheet.ShowAllData
Sheet19.Select ActiveSheet.ShowAllData
Sheet21.Select ActiveSheet.ShowAllData
Sheet22.Select ActiveSheet.ShowAllData
End Sub
- Nên nghĩ bạn nên dùng vòng lặp For để chạy qua các Sheet.
- Kiểm tra tình trạng bảng tính Có Filter hay không?
- Nếu có thì tiến hành ShowAllData như bạn muốn, còn không thì bỏ qua.
 
Upvote 0
- Nên nghĩ bạn nên dùng vòng lặp For để chạy qua các Sheet.
- Kiểm tra tình trạng bảng tính Có Filter hay không?
- Nếu có thì tiến hành ShowAllData như bạn muốn, còn không thì bỏ qua.
Bạn viết giúp mình code dùng vòng lặp for đó được ko Bạn? Tks Bạn!
 
Upvote 0
Bạn viết giúp mình code dùng vòng lặp for đó được ko Bạn? Tks Bạn!


PHP:
Sub ShowAll_Data()
    On Error Resume Next
    Dim AuF As AutoFilter
    Dim Wks As Worksheet
    For Each Wks In Worksheets
        Wks.Select
        Set AuF = Wks.AutoFilter
        If AuF.FilterMode = True Then
            Wks.ShowAllData
        End If
    Next Wks
End Sub
- Bạn chép vào Module-->Ra ngoài bảng tính-->alt+F8-->Run xem thế nào.
 
Upvote 0
Em chào A/C!
Em đang tạo code để Clear filter một loạt các sheets trong file, đang ở chế độ filter. Hiện tại nếu các sheet đều filter thì code chạy được. Nhưng nếu sheet nào đó ko filter thì code bị lỗi và dừng lại. A/C sửa hoặc bổ sung giúp Em cách bẫy lỗi trường hợp ko Filter thì next sang các sheet tiếp theo. Cảm ơn A/C nhiều!

Mã:
Sub ClearAllSheet()
On Error Resume Next
Sheet16.Select ActiveSheet.ShowAllData
Sheet2.Select ActiveSheet.ShowAllData
Sheet4.Select ActiveSheet.ShowAllData
Sheet5.Select ActiveSheet.ShowAllData
Sheet6.Select ActiveSheet.ShowAllData
Sheet9.Select ActiveSheet.ShowAllData
Sheet13.Select ActiveSheet.ShowAllData
Sheet14.Select ActiveSheet.ShowAllData
Sheet15.Select ActiveSheet.ShowAllData
Sheet16.Select ActiveSheet.ShowAllData
Sheet17.Select ActiveSheet.ShowAllData
Sheet19.Select ActiveSheet.ShowAllData
Sheet21.Select ActiveSheet.ShowAllData
Sheet22.Select ActiveSheet.ShowAllData
End Sub
thử code
Mã:
Sub ClearAllSheet()
On Error Resume Next
For i = 1 To Sheets.Count
  Sheets(i).ShowAllData
Next i
End Sub
 
Upvote 0
PHP:
Sub ShowAll_Data()
    On Error Resume Next
    Dim AuF As AutoFilter
    Dim Wks As Worksheet
    For Each Wks In Worksheets
        Wks.Select
        Set AuF = Wks.AutoFilter
        If AuF.FilterMode = True Then
            Wks.ShowAllData
        End If
    Next Wks
End Sub
- Bạn chép vào Module-->Ra ngoài bảng tính-->alt+F8-->Run xem thế nào.


thử code
Mã:
Sub ClearAllSheet()
On Error Resume Next
For i = 1 To Sheets.Count
  Sheets(i).ShowAllData
Next i
End Sub


Em chạy code rồi, Rất tuyệt.
Cảm ơn Bạn phuyen89 và Anh HieuCD rất nhiều!
 
Upvote 0
Public Sub Hoi_sinh()
Sheets("Form").Copy After:=Sheets("Form")
End Sub

Code này em dùng để copy sheet Form, tuy nhiên vì sheet này của em đang ẩn nên khi chạy lệnh này cũng tạo ra Sheet ẩn. Vậy làm thế nào để sheet mới được tạo ra sẽ hiện?
 
Upvote 0
Public Sub Hoi_sinh()
Sheets("Form").Copy After:=Sheets("Form")
End Sub

Code này em dùng để copy sheet Form, tuy nhiên vì sheet này của em đang ẩn nên khi chạy lệnh này cũng tạo ra Sheet ẩn. Vậy làm thế nào để sheet mới được tạo ra sẽ hiện?
Bạn thử:
PHP:
Public Sub Hoi_sinh()
     Sheets("Form").Visible = True
  Sheets("Form").Copy After:=Sheets("Form")
    Sheets("Form").Visible = False
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom