Chuyên mục xử lý, gỡ rối code VBA (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Status
Không mở trả lời sau này.

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,957
Nút in của bạn, thay bằng đoạn code này thử xem
Mã:
Private Sub CommandButton2_Click()
For i = 2 To Sheet12.Range("C65000").End(xlUp).Row
    Sheets(Sheet12.Range("C" & i).Value).PrintOut
Next i
End Sub
Hi thực sự thì mình chỉ mới tập tọe sử dụng VBA thôi, bác "giaiphap" có thể sửa giùm mình đoạn code đó được không? Hoặc không bác có thể nói rõ hơn là thay đoạn code nào bằng đoạn code của bác không? Có phải ý bác là thay đoạn
"If ActiveWorkbook.Sheets(j).Name = A(i, 1).Text and A(i,2)=1 Then ActiveWorkbook.Sheets(j).Select On Error Resume Next ActiveWorkbook.Sheets(j).PrintOut"
Cảm ơn nhiều ạ.
 
Upvote 0
Hi thực sự thì mình chỉ mới tập tọe sử dụng VBA thôi, bác "giaiphap" có thể sửa giùm mình đoạn code đó được không? Hoặc không bác có thể nói rõ hơn là thay đoạn code nào bằng đoạn code của bác không? Có phải ý bác là thay đoạn
"If ActiveWorkbook.Sheets(j).Name = A(i, 1).Text and A(i,2)=1 Then ActiveWorkbook.Sheets(j).Select On Error Resume Next ActiveWorkbook.Sheets(j).PrintOut"
Cảm ơn nhiều ạ.
bạn xem file đúng ý chưa.
 

File đính kèm

Upvote 0
bạn xem file đúng ý chưa.
Không được rồi bác ơi, Em chạy code của bác sửa lại cho em rồi, nó in hết tất tần tật các sheet ra bác ạ .
Ý
em muốn là
1. Đầu tiên em ấn nút Ghet Sheet's name để lấy tên và thứ tự các sheet vào cột C (kèm theo thứ tự sheet ở cột B), sau đó em chèn thêm cột D và nhập 0 cho sheet không in, nhập 1 cho sheet muốn in ra.
2. Tiếp đó em ấn nút In để chạy code VBA cho phép in những sheet mà em nhập 1 (muốn in). Mục đích là mình có thể thay đổi tùy ý những sheet muốn in ra trong một lần in ạ. Tuy nhiên cái code của nút In ấy em chạy bị lỗi. Nhờ bác và mọi người giúp đỡ }}}}}
 
Lần chỉnh sửa cuối:
Upvote 0
em không biết hỏi trong phần này có đúng không, e đang muốn tạo một cái worksheet_change nhưng không biết viết câu lệnh này thế nào, Mong các anh chị em hướng dẫn với ạ.
Nếu ô đó nằm trong khoảng A1:C100 thì hiện list Datavalidation gồm các giá trị 1,1/2,P,K (Dùng để chấm công)
Em đang mò mẫm học phần này nên ứng dụng thử xem sao. E xin cảm ơn ạ
 
Upvote 0
Em chạy code của bác sửa lại cho em rồi, nó in hết tất tần tật các sheet ra bác ạ :-=
Bạn thử dùng code sau
Mã:
Private Sub CommandButton2_Click()
    Dim i&
    For i = 1 To Sheets.Count
        If Cells(i, 4) = 1 Then Sheets(Cells(i, 3).Value).PrintOut
    Next
End Sub
Nút "Get sheets's name" như vậy chưa đúng: không phải tất cả các danh từ đều có sở hữu cách, sở hữu cách của danh từ số nhiều tận cùng bằng s (ở đây là sheets) nếu có thì chỉ thêm dấu ' thành " sheets' "
 
Upvote 0
em không biết hỏi trong phần này có đúng không, e đang muốn tạo một cái worksheet_change nhưng không biết viết câu lệnh này thế nào, Mong các anh chị em hướng dẫn với ạ.

Em đang mò mẫm học phần này nên ứng dụng thử xem sao. E xin cảm ơn ạ
Cái này thì cứ vào validation mà tạo, cần gì vba đâu bạn.
 
Upvote 0
Bạn thử dùng code sau
Mã:
Private Sub CommandButton2_Click()
    Dim i&
    For i = 1 To Sheets.Count
        If Cells(i, 4) = 1 Then Sheets(Cells(i, 3).Value).PrintOut
    Next
End Sub
Nút "Get sheets's name" như vậy chưa đúng: không phải tất cả các danh từ đều có sở hữu cách, sở hữu cách của danh từ số nhiều tận cùng bằng s (ở đây là sheets) nếu có thì chỉ thêm dấu ' thành " sheets' "
Chuẩn rồi bác ạ. đúng ý em rồi, hê hê. Cảm ơn bác nhiều lắm lắm!
P/s: Bác soi chính tả kĩ quá ạ **~**
 
Upvote 0
Cho em hỏi chút ạ, có hàm nào tương tự hàm fixed trong VBA không ạ.
Ví dụ em muốn hiển thị số 13000 thành 13,000 trong một dòng diễn giải ạ
Em cảm ơn!
 
Upvote 0
Cho em hỏi chút ạ, có hàm nào tương tự hàm fixed trong VBA không ạ.
Ví dụ em muốn hiển thị số 13000 thành 13,000 trong một dòng diễn giải ạ
Em cảm ơn!
Giả sử A1 là 13000. Tại B1:
Mã:
=TEXT(A1,"#,##0")
Có điều câu hỏi không liên quan tới topic.
 
Upvote 0
Tôi có một đoạn code sau. Bây giờ làm thế nào để sau khi xóa giá trị ở cột A đi thì giá trị đã gán vào cột B ko thay đổi. Mong các thành viên khác trợ giúp.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Target.Offset(0, 1).Value = Target
End If
End Sub
 
Upvote 0
Tôi có một đoạn code sau. Bây giờ làm thế nào để sau khi xóa giá trị ở cột A đi thì giá trị đã gán vào cột B ko thay đổi. Mong các thành viên khác trợ giúp.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Target.Offset(0, 1).Value = Target
End If
End Sub
Bạn thêm một điều kiện nữa. Như vầy
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Not IsEmpty(Target(1)) Then
Target.Offset(0, 1).Value = Target
End If
End Sub
 
Upvote 0
bac huuthang_bd ơi giúp e với em viết bằng VBA nhé
 

File đính kèm

  • loi .jpg
    loi .jpg
    46 KB · Đọc: 38
Lần chỉnh sửa cuối:
Upvote 0
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom