Giúp xem code bị lỗi gì?????

Liên hệ QC

anhbatt

Thành viên mới
Tham gia
27/10/09
Bài viết
38
Được thích
2
[code
]Private Sub CommandButton1_Click()
On Error Resume Next
If [D6].Value = "kv1" Then
Sheets("T1").Select
Columns("A:I").Select
Selection.EntireColumn.Hidden = False
Range("A2:D21").Select
ActiveSheet.PageSetup.PrintArea = "$A$2:$D$21"
ActiveWindow.SelectedSheets.PrintPreview
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'Application.Dialogs(xlDialogPrint).Show
'Application.ScreenUpdating = True
Else:
Sheets("T1").Select
Columns("C:G").Select
Selection.EntireColumn.Hidden = True 'an cot C:G
Range("A2:I21").Select
ActiveSheet.PageSetup.PrintArea = "$A$2:$I$21"
ActiveWindow.SelectedSheets.PrintPreview
End If
End Sub
[/code]
file kèm theo tôi không gởi kèm theo trong diễn đàn.
Các bạn tải file theo link: http://sites.google.com/site/anhbatt...viewAsViewer=1
 
Bạn phải chỉ dẫn tường minh cho câu lệnh

Mã:
Private Sub CommandButton1_Click()
 On Error Resume Next
  If [D6].Value = "kv1" Then
     Sheets("T1").Select
     Columns("A:I").Select
    Selection.EntireColumn.Hidden = False
    Range("A2:D21").Select
    ActiveSheet.PageSetup.PrintArea = "$A$2:$D$21"
    ActiveWindow.SelectedSheets.PrintPreview
    'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    'Application.Dialogs(xlDialogPrint).Show
    'Application.ScreenUpdating = True
  Else:
        Sheets("T1").Select
        [U][B][COLOR=Blue]Sheets("T1").[/COLOR][/B][/U]Columns("C:G").Select
        Selection.EntireColumn.Hidden = True           'an cot C:G
        Range("A2:I21").Select
        ActiveSheet.PageSetup.PrintArea = "$A$2:$I$21"
        ActiveWindow.SelectedSheets.PrintPreview
  End If
End Sub
Lưu ý phần thêm màu xanh (Có thể thay bằng Selection. Sau câu lệnh Sheets("T1").Select thì Sheets("T1") là Selection)
Nếu câu hỏi của bạn chỉ có 1 dấu hỏi thì mình vẫn trả lời, còn ở đây hơi phân tâm e phạm nội quy bạn ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn chạy code sau & tự ngẫm xem mình chưa chỉnh chổ nào

PHP:
Private Sub CommandButton1_Click()
 On Error GoTo Loi   '<=|'
  If [D6].Value = "kv1" Then
1     Sheets("T1").Select
   MsgBox Columns("A:I").Address, , Columns("A:I").Parent.Name    '<=|'
2     Columns("A:I").Select
3    Selection.EntireColumn.Hidden = False
    Range("A2:D21").Select
    ActiveSheet.PageSetup.PrintArea = "$A$2:$D$21"
    ActiveWindow.SelectedSheets.PrintPreview
    'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True'
    'Application.Dialogs(xlDialogPrint).Show '
    'Application.ScreenUpdating = True '
  Else:
        Sheets("T1").Select
        Columns("C:G").Select
        Selection.EntireColumn.Hidden = True           'an cot C:G
        Range("A2:I21").Select
        ActiveSheet.PageSetup.PrintArea = "$A$2:$I$21"
        ActiveWindow.SelectedSheets.PrintPreview
  End If
Err:              Exit Sub
Loi:
   MsgBox Error, , Erl
   Resume Err
End Sub
--=0 :-= --=0

Như bạn cứ gặp lỗi thì Rêsume Next thì biết sai ra răng!
 
Upvote 0
Cảm ơn Sealand và ChanhTQ nha! Mình đã sửa lỗi lại theo như ý của Sealanhd và nó đã chạy được rồi.
Còn mình đã past đoạn code của ChanhTQ và chạy thử, mình thấy lỗi địa chỉ thôi, mình chưa hiểu lắm về nó. ChanhTQ có thể nói rõ hơn không?
Ah, hai bác cho mình hỏi, nếu một file excel có nhiều code thì khi chạy nó chậm quá, tôi đã có xem code giúp chạy các file excel có chứa code chạy nhanh hơn nhưng tôi không hiểu và đặt nó ở chỗ nào trong các đoạn code của mình trong file. (Ví dụ: Trong file excel ở bài viết trên khi tôi chạy thì màn hình nó chóp chóp mấy lần theo thao tác chọn cột, rồi ẩn, rồi xem trang in... thấy nó lâu quá)
Mong hai bác xem và chỉ giáo!!
code giúp chạy nhanh VBA
http://www.giaiphapexcel.com/forum/showthread.php?p=149192#post149192
 
Lần chỉnh sửa cuối:
Upvote 0
Chậm ngoài công việc yêu cầu còn do code bạn viết chưa tối ưu . Ví dụ code của bạn có thể thu gọn lại và bỏ các công việc không cần thiết như sau:

Mã:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
  With Sheets("T1")
  If [D6].Value = "kv1" Then
        .Columns("A:I").EntireColumn.Hidden = False
        .PageSetup.PrintArea = "$A$2:$D$21"
        .PrintPreview
  Else:
        .Columns("C:G").EntireColumn.Hidden = True
        .PageSetup.PrintArea = "$A$2:$I$21"
        .PrintPreview
  End If
      End With
Application.ScreenUpdating = True
End Sub
Lưu ý: với code này thì Application.ScreenUpdating = mình đưa vào để giối thiệu thôi còn thực tế không cần thiết, bạn dán vào thử xem sao?

Nếu chỉ để view hay in thì còn bớt tiếp

Mã:
Private Sub CommandButton1_Click()
  With Sheets("T1")
  If [D6].Value = "kv1" Then
        .Columns("A:I").EntireColumn.Hidden = False
        .Range("$A$2:$D$21").PrintPreview
  Else:
        .Columns("C:G").EntireColumn.Hidden = True
        .Range("$A$2:$I$21").PrintPreview
  End If
      End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn Sealand . . ! Còn mình đã past đoạn code của ChanhTQ và chạy thử, mình thấy lỗi địa chỉ thôi, mình chưa hiểu lắm về nó. ChanhTQ có thể nói rõ hơn không?

Ngoài địa chỉ, MsgBox còn cho biết tên trang tính hiện đang chứa địa chỉ đó; Bạn xem có đúng trang bạn cần dùng không?
 
Upvote 0
Web KT

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

Back
Top Bottom