Lựa chọn Máy và in bằng Form DialogSheet (6 người xem)

Liên hệ QC

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

Kiều Mạnh

I don't program, I beat code into submission!!!
Tham gia
9/6/12
Bài viết
5,538
Được thích
4,129
Giới tính
Nam
Mình có làm một Form in bằng Dialog Sheet mà nó lỗi khi Add máy in vào Text và lựa chọn số trang in trên DialogSheet....
Mong các bạn trợ giúp xem nó lỗi dó mình viết code nó Không hiểu hay mình không hiểu nó hay sao ấy ....--=0--=0

Trên Form thì mình làm được còn trên DialogSheet thì đang kẹt cái vụ TextBox...Link máy in vào đó và Gõ số trang in ...khi nhấn in thì in xong thoát luôn cái DialogSheet đó luôn...

Khi ở bất cứ Sheet nào thì nó in theo Vùng mình viết trong Code

Rất mong các thành viên trợ giúp
Link File
http://www.mediafire.com/download/i9003051422s5x0/Seup_May_In.rar
Xin cảm ơn Các Bạn
 
Lần chỉnh sửa cuối:
dạ cám ơn thầy . thật ra topic có thể kết thúc từ #2 hoặc #3 rồi . em biết bác học kieu manh thích chế nên cô tình khơi thêm cái chuyện lấy tên máy in đó mà =)) .
cơ mà bài #26 có chuyện vẫn chưa bàn mà . không biết nhà bác học nào xung phong "nhá hàng" trước đây ? hihi
 
Upvote 0
dạ cám ơn thầy . thật ra topic có thể kết thúc từ #2 hoặc #3 rồi . em biết bác học kieu manh thích chế nên cô tình khơi thêm cái chuyện lấy tên máy in đó mà =)) .
cơ mà bài #26 có chuyện vẫn chưa bàn mà . không biết nhà bác học nào xung phong "nhá hàng" trước đây ? hihi

Thôi thì mạn phép e xin 'nhá hàng' in lộn xộn --=0
Do e không làm trên DialogSheet nhưng giả sữ Sheet1 cần in , ô L1 người nhập gõ các trang cần in( ví dụ 1,4-5,8,10-12 thì sẽ in trang 1,4,5,8,10,11,12 )
E xin nhá:
Mã:
Sub InLonXon()
Dim k As Byte, l As Long, Arr, i As Long, j As Long
With Sheet1
    Arr = Split(.Range("L1").Value, ",")
    For i = 0 To UBound(Arr)
        k = InStr(1, Arr(i), "-")
        If k = 0 Then 'Neu in le 1 trang duy nhat
            .PrintOut from:=Arr(i), to:=Arr(i)
        Else
            l = Len(Arr(i))
            For j = Val(Left(Arr(i), k - 1)) To Val(Mid(Arr(i), k + 1, l - k))
                .PrintOut from:=j, to:=j
            Next j
        End If
    Next i
End With
End Sub
 
Upvote 0
Thôi thì mạn phép e xin 'nhá hàng' in lộn xộn --=0
Do e không làm trên DialogSheet nhưng giả sữ Sheet1 cần in , ô L1 người nhập gõ các trang cần in( ví dụ 1,4-5,8,10-12 thì sẽ in trang 1,4,5,8,10,11,12 )
E xin nhá:
Mã:
Sub InLonXon()
Dim k As Byte, l As Long, Arr, i As Long, j As Long
With Sheet1
    Arr = Split(.Range("L1").Value, ",")
    For i = 0 To UBound(Arr)
        k = InStr(1, Arr(i), "-")
        If k = 0 Then 'Neu in le 1 trang duy nhat
            .PrintOut from:=Arr(i), to:=Arr(i)
        Else
            l = Len(Arr(i))
            For j = Val(Left(Arr(i), k - 1)) To Val(Mid(Arr(i), k + 1, l - k))
                .PrintOut from:=j, to:=j
            Next j
        End If
    Next i
End With
End Sub
Sao bạn không cho lên UserForm luôn đi...thay vì [L1] Thì Textbox1.. Thay vì With Sheet1 Thì ActiveSheet đi cho nó bao Quát luôn ....ứng dụng Function Anh NDu viết luôn ....khi đó thích in Sheet nào thì in
Vậy nó sẽ Hoành tráng và chuyên nghiệp một tí.....--=0--=0--=0
 
Lần chỉnh sửa cuối:
Upvote 0
Thôi thì mạn phép e xin 'nhá hàng' in lộn xộn --=0
Do e không làm trên DialogSheet nhưng giả sữ Sheet1 cần in , ô L1 người nhập gõ các trang cần in( ví dụ 1,4-5,8,10-12 thì sẽ in trang 1,4,5,8,10,11,12 )
E xin nhá:
Mã:
Sub InLonXon()
Dim k As Byte, l As Long, Arr, i As Long, j As Long
With Sheet1
    Arr = Split(.Range("L1").Value, ",")
    For i = 0 To UBound(Arr)
        k = InStr(1, Arr(i), "-")
        If k = 0 Then 'Neu in le 1 trang duy nhat
            .PrintOut from:=Arr(i), to:=Arr(i)
        Else
            l = Len(Arr(i))
            For j = Val(Left(Arr(i), k - 1)) To Val(Mid(Arr(i), k + 1, l - k))
                .PrintOut from:=j, to:=j
            Next j
        End If
    Next i
End With
End Sub

Tôi đoán rằng anh Hồng hổng phải muốn cách này
Ẹc... Ẹc...
-------------------
Sao bạn không cho lên Form luôn đi...thay vì [L1] Thì Textbox1.. Thay vì With Sheet1 Thì ActiveSheet đi cho nó bao Quát luôn ....ứng dụng Function Anh NDu viết luôn ....khi đó thích in Sheet nào thì in
Vậy nó sẽ Hoành tráng và chuyên nghiệp một tí.....
a01.gif
a01.gif
a01.gif
Thì anh Mạnh làm luôn đi cho nó.. mạnh!
 
Lần chỉnh sửa cuối:
Upvote 0
Thôi thì mạn phép e xin 'nhá hàng' in lộn xộn --=0
Do e không làm trên DialogSheet nhưng giả sữ Sheet1 cần in , ô L1 người nhập gõ các trang cần in( ví dụ 1,4-5,8,10-12 thì sẽ in trang 1,4,5,8,10,11,12 )
E xin nhá:
Mã:
Sub InLonXon()
Dim k As Byte, l As Long, Arr, i As Long, j As Long
With Sheet1
    Arr = Split(.Range("L1").Value, ",")
    For i = 0 To UBound(Arr)
[COLOR=#ff0000]        k = InStr(1, Arr(i), "-")
        If k = 0 Then 'Neu in le 1 trang duy nhat
            .PrintOut from:=Arr(i), to:=Arr(i)
        Else
            l = Len(Arr(i))
            For j = Val(Left(Arr(i), k - 1)) To Val(Mid(Arr(i), k + 1, l - k))
                .PrintOut from:=j, to:=j
            Next j
        End If[/COLOR]
    Next i
End With
End Sub
Chỗ màu đỏ nên sửa thành vầy:
Mã:
         Arr1 = Split(Arr(i), "-")
        .PrintOut from:=Arr1(0), to:=Arr1(UBound(Arr1, 1))
 
Upvote 0
Web KT

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

Back
Top Bottom