Cát Lượng
Thành viên tiêu biểu

- Tham gia
- 14/11/18
- Bài viết
- 403
- Được thích
- 66
Em có sử dụng Form để in.
Khi copy "Sub gian" vào Sheet19 (NT A_B) thì gọi Sub trong Form báo lỗi như hình thứ nhất
Nhưng khi chuyển "Sub gian" vào Module2, lúc này gọi Sub trong Form để in (Khi in có tác dụng giãn dòng luôn) thì lại được.
"Sub gian" code như sau:
Toàn bộ code trong Form in như sau:
"Sub gian" em đã gọi trong Form
>> Nhờ các anh các chị giúp em chỉnh code trong Form mà có thể gọi "Sub gian" khi sử dụng Form in mà vị trí " Sub gian" nằm trong worksheet (NT A_B) mà không bị báo lỗi.
Em xin chân thành cảm ơn!

Khi copy "Sub gian" vào Sheet19 (NT A_B) thì gọi Sub trong Form báo lỗi như hình thứ nhất
Nhưng khi chuyển "Sub gian" vào Module2, lúc này gọi Sub trong Form để in (Khi in có tác dụng giãn dòng luôn) thì lại được.
"Sub gian" code như sau:
Mã:
Sub gian()
Application.ScreenUpdating = False
'Rows(FitRows).EntireRow.AutoFit
Range("A20").EntireRow.AutoFit
Application.ScreenUpdating = True
End Sub
Mã:
Private Sub OkInBB_All_Click()
Dim inStart As Long, inFinish As Long
Dim I As Long
Dim CotD As Range
Dim Ws As Worksheet
On Error GoTo Thoat
Set Ws = Sheet19
Ws.DisplayPageBreaks = False
inStart = TextBox1.Value
inFinish = TextBox2.Value
For I = inStart To inFinish
With Ws
ActiveSheet.DisplayPageBreaks = False
.Range("L10").Value = I
Call gian
For Each CotD In Range("D8:D12")
If CotD.Value = "0" Then
CotD.EntireRow.Hidden = True
End If
Next CotD
.PrintOut 'Vùng in Set
End With
Next I
Thoat:
Unload Me
ActiveSheet.DisplayPageBreaks = False
End Sub
'***********************************************************************************************************************
'LUA CHON MÁY IN
Private Sub Printer_Properties_Click()
Call Shell("rundll32 printui.dll,PrintUIEntry /p /n """ & ComboBox1.Value & """", vbNormalFocus)
End Sub
Sub List_Printer()
Dim aPrinters As Object
Dim I As Long, N As Long
With CreateObject("WScript.Network")
Set aPrinters = .EnumPrinterConnections
For I = 1 To aPrinters.Count Step 2
ComboBox1.AddItem aPrinters.Item(I)
Next
End With
End Sub
Sub Get_Default_Printer()
Dim WSHshell As Object, RegKey As String, RegKeySplit As Variant
Dim RegDefault As String, MyPrinter As String
RegKey = _
"HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device"
Set WSHshell = CreateObject("WScript.Shell")
RegDefault = WSHshell.RegRead(RegKey)
Set WSHshell = Nothing
RegKeySplit = Split(RegDefault, ",")
MyPrinter = RegKeySplit(0)
ComboBox1.Text = MyPrinter
End Sub
Private Sub UserForm_Initialize()
Call List_Printer
Call Get_Default_Printer
End Sub
'***********************************************************************************************************************
Mã:
.....
Call gian
......
>> Nhờ các anh các chị giúp em chỉnh code trong Form mà có thể gọi "Sub gian" khi sử dụng Form in mà vị trí " Sub gian" nằm trong worksheet (NT A_B) mà không bị báo lỗi.
Em xin chân thành cảm ơn!

File đính kèm
Lần chỉnh sửa cuối: