Viết code mở file bất kỳ, in file đó rồi đóng lại (1 người xem)

  • Thread starter Thread starter lq177
  • Ngày gửi Ngày gửi
Liên hệ QC

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

lq177

Thành viên thường trực
Tham gia
22/4/10
Bài viết
203
Được thích
112
Các anh chị cho em hỏi code để mở file pdf, hoặc file excel ra, rồi in file đó xong lại tắt file đó đi ạ.
em cám ơn
 
Cám ơn bác đã gợi ý, để em thử đưa vô code xem sao
Để in 1 file bất kỳ, bạn có thể dùng hàm API ShellExecute để thực hiện
Thật ra bạn có thể tìm trên google với từ khóa Excel VBA code to print any file ---> có cả đống
Lưu ý rằng nếu dùng API thì phải để ý xem phiên bản office trên máy là 32 hay 64 rồi tùy biến cho phù hợp. Ngoài ra, theo mặc định thì hàm API trên chỉ làm việc với tên file không dấu, trong trường hợp file là tiếng Việt có dấu, lại phải tùy biến tiếp
 
Upvote 0
Để in 1 file bất kỳ, bạn có thể dùng hàm API ShellExecute để thực hiện
Thật ra bạn có thể tìm trên google với từ khóa Excel VBA code to print any file ---> có cả đống
Lưu ý rằng nếu dùng API thì phải để ý xem phiên bản office trên máy là 32 hay 64 rồi tùy biến cho phù hợp. Ngoài ra, theo mặc định thì hàm API trên chỉ làm việc với tên file không dấu, trong trường hợp file là tiếng Việt có dấu, lại phải tùy biến tiếp
Cám ơn anh, Liên quan đến API chắc em chịu thua thôi,
Nếu có thể anh cho em xin 1 Ví dụ nhé.
 
Upvote 0
Cám ơn anh, Liên quan đến API chắc em chịu thua thôi,
Nếu có thể anh cho em xin 1 Ví dụ nhé.
Bạn chưa làm mà đã thua sao?
Thật ra thì bạn đâu cần biết API nó khó dễ thế nào đâu. Đường link tôi cho ở trên, bạn cứ mở xem thử, người ta viết sẵn cả rồi, bạn chỉ việc áp dụng bằng cách copy code cho vào file của bạn rồi sửa đường dẫn file cho phù hợp là xong mà
 
Upvote 0
Bạn chưa làm mà đã thua sao?
Thật ra thì bạn đâu cần biết API nó khó dễ thế nào đâu. Đường link tôi cho ở trên, bạn cứ mở xem thử, người ta viết sẵn cả rồi, bạn chỉ việc áp dụng bằng cách copy code cho vào file của bạn rồi sửa đường dẫn file cho phù hợp là xong mà
Em thử hàm sau thấy chạy Ok ... Nhưng VD: ta muốn In 1 Sheet hay 1 vùng nào đó trong Sheet thì code viết sao được Anh
PHP:
#If VBA7 Then
    Private Declare PtrSafe Function ShellExecute _
        Lib "shell32.dll" Alias "ShellExecuteA" _
            (ByVal hwnd As LongPtr, _
             ByVal lpOperation As String, _
             ByVal lpFile As String, _
             ByVal lpParameters As String, _
             ByVal lpDirectory As String, _
             ByVal nShowCmd As Long) _
        As LongPtr
#Else
    Private Declare Function ShellExecute _
        Lib "shell32.dll" Alias "ShellExecuteA" _
            (ByVal hwnd As Long, _
             ByVal lpOperation As String, _
             ByVal lpFile As String, _
             ByVal lpParameters As String, _
             ByVal lpDirectory As String, _
            ByVal nShowCmd As Long) _
        As Long
#End If

Private Const SW_HIDE = 0

Sub FilePrint(ByVal strFilePath As String)
    Dim retVal As Long
    retVal = ShellExecute(0, "Print", strFilePath, 0, 0, SW_HIDE)
    If retVal < 32 Then
       '// there are Error codes for this..left out
        MsgBox "An Error occured...could not print"
    End If
End Sub

Sub Main()
    Dim FilePath As String
    FilePath = ThisWorkbook.Path & "\Print.txt"
    Call FilePrint(FilePath)
End Sub
 
Upvote 0
Em thử hàm sau thấy chạy Ok ... Nhưng VD: ta muốn In 1 Sheet hay 1 vùng nào đó trong Sheet thì code viết sao được Anh
Thế thì tôi không biết!
Tôi nghĩ đây là code tổng quát để in file bất kỳ, giống như động tác click phải vào file (trong cửa sổ Explore) rồi chọn Print. Vậy nên để in cụ thể file Excel, cụ thể tại sheet nào đó chắc không gì tốt hơn là mở file, chọn sheet rồi in thôi
 
Upvote 0
Thế thì tôi không biết!
Tôi nghĩ đây là code tổng quát để in file bất kỳ, giống như động tác click phải vào file (trong cửa sổ Explore) rồi chọn Print. Vậy nên để in cụ thể file Excel, cụ thể tại sheet nào đó chắc không gì tốt hơn là mở file, chọn sheet rồi in thôi
Em mới thử file Excel rồi nó đơ cứng luôn không chạy nổi ... hồi nảy thử File *.txt nó nhẹ in cái ok ngay .... vậy cách tốt nhất là dòng màu đỏ
 
Upvote 0
Em mới thử file Excel rồi nó đơ cứng luôn không chạy nổi
Cũng với file excel đó, bạn làm bằng tay thử xem. Tức là click phải vào tên file rồi chọn Print. Nếu nó cũng "đơ" có nghĩa là không phải lỗi do code (và ngược lại)
 
Upvote 0
Theo tôi, cách đơn giản nhất là dùng 1 sheet Chọn ỗ dĩa, lấy tên File vào sheet và tạo Link, nhấn Ctrl+F tìm tên file, click vào mở nó ra rồi muốn in cái gì là tùy.
 
Upvote 0
Cũng với file excel đó, bạn làm bằng tay thử xem. Tức là click phải vào tên file rồi chọn Print. Nếu nó cũng "đơ" có nghĩa là không phải lỗi do code (và ngược lại)
thấy chạy tốt đó anh vậy là code đó có vấn đề gì chăng ... chiều rảnh em coi lại xem sao
 
Upvote 0
Web KT

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

Back
Top Bottom