Giúp mình in file excel đang chạy bằng VB6 (1 người xem)

Liên hệ QC

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

redevinte

Thành viên chính thức
Tham gia
27/10/10
Bài viết
65
Được thích
15
Mình đã tìm kiếm trên mạng về code VB6 dùng để in file excel, nhưng các code đó đều là mở file excel lên, sau đó phát lệnh in file này. Mình loay hoay mãi nhưng không chỉnh sửa được để code đó phát lệnh in luôn cho một file đã được mở sẵn.
Mọi người giúp mình nhé.
 
Mình đã tìm kiếm trên mạng về code VB6 dùng để in file excel, nhưng các code đó đều là mở file excel lên, sau đó phát lệnh in file này. Mình loay hoay mãi nhưng không chỉnh sửa được để code đó phát lệnh in luôn cho một file đã được mở sẵn.
Mọi người giúp mình nhé.
nghĩa là thế nào nhỉ. ý bạn có phải là làm cho file excel giống cái report không, có thể thay đổi theo điều kiện nhập trong vb?+-+-+-+
 
Không phải tạo report đâu bạn. Ý mình là dùng VB6 để phát lệnh cho máy in, in sheet hiện hành của một file excel đang được mở. Mình có một chương trình in nhãn (mã vạch), nhưng do yêu cầu phải điền thêm một số thông tin vào nhãn/tem (phần mềm in nhãn không có chức năng đó) nên mình viết thêm một ứng dụng nhỏ bằng VB6 để điền thêm những thông tin đó vào nhãn (sau khi đã tạo ra nhãn bằng phần mềm tạo nhãn), ứng dụng nhỏ này hiệu chỉnh luôn file đang mở nhưng mỗi lần hiệu chỉnh xong mình muốn nó gửi lệnh in ra máy in để in sheet đó luôn. Nếu lại phải vào menu File -> Print thì mất thời gian mà (một ngày in cũng tương đối nhiều nhãn).
 
in sheet hiện hành của file excel đang mở?
bạn dùng thử cái này:
dim xl as new excel.application
dim wb as workbook
dim ws as worksheet
set xl=getobject(,"Excel.application")
set wb=xl.activeworkbook
set ws=xb.activesheet
...
' lệnh in
ws.range(" từ cells nào đến cells nào").printout
 
Không phải tạo report đâu bạn. Ý mình là dùng VB6 để phát lệnh cho máy in, in sheet hiện hành của một file excel đang được mở. Mình có một chương trình in nhãn (mã vạch), nhưng do yêu cầu phải điền thêm một số thông tin vào nhãn/tem (phần mềm in nhãn không có chức năng đó) nên mình viết thêm một ứng dụng nhỏ bằng VB6 để điền thêm những thông tin đó vào nhãn (sau khi đã tạo ra nhãn bằng phần mềm tạo nhãn), ứng dụng nhỏ này hiệu chỉnh luôn file đang mở nhưng mỗi lần hiệu chỉnh xong mình muốn nó gửi lệnh in ra máy in để in sheet đó luôn. Nếu lại phải vào menu File -> Print thì mất thời gian mà (một ngày in cũng tương đối nhiều nhãn).
Gửi file demo VB6 + file Excel của bạn đó lên đây xem thử nhé.
 
Mình gửi file demo + file excel (Theo yêu cầu của bạn "Hai lua mien tay")
File excel là file mà phần mềm tạo nhãn đã tạo ra.
File label.exe là file để thêm thông tin vào file nhãn được tạo.
Hàng trên cùng là mã vạch, nếu máy bạn không có font thì nó chỉ hiển thị số và chữ bình thường, không hiển thị mã vạch (mình đã xóa logo và một số thứ trên nhãn đi - mọi người thông cảm nhé)

Mình chưa thử code mà bạn "Thang314" gửi, cảm ơn bạn đã giúp đỡ.
 

File đính kèm

Lần chỉnh sửa cuối:
Mình đã thử code của bạn, sửa lại chỗ bạn đánh nhầm set ws = xb.activesheet, add thư viện excel ở trong VB6, chương trình chạy nhưng khi ấn nút phát lệnh in thì báo lối về vùng in như sau:
Untitled.jpg
Mình chỉnh lại, không cần chọn vùng in nữa, có thể in ngon lành, nhưng mình thấy hơi bất cập ở chỗ, nó chọn activesheet của file excel được mở đầu tiên trong các file excel hiện đang được mở để in, có cách nào để chỉ định rõ cần in activesheet của file excel có tên là Printtemp.xls chẳng hạn không? Ah, bạn xem giúp mình phần lỗi về vùng in ở trên nữa nhé (mình cũng muốn tìm hiểu).
Untitled1.jpg
 

File đính kèm

Mình gửi file demo + file excel (Theo yêu cầu của bạn "Hai lua mien tay")
File excel là file mà phần mềm tạo nhãn đã tạo ra.
File label.exe là file để thêm thông tin vào file nhãn được tạo.
Hàng trên cùng là mã vạch, nếu máy bạn không có font thì nó chỉ hiển thị số và chữ bình thường, không hiển thị mã vạch (mình đã xóa logo và một số thứ trên nhãn đi - mọi người thông cảm nhé)

Mình chưa thử code mà bạn "Thang314" gửi, cảm ơn bạn đã giúp đỡ.
Bạn nên gửi source code chứ gửi file biên dịch làm gì chứ.
 
cái range phải là ws.range("a1:g5").printout chứ.

theo yêu cầu của bạn là in sheet hiện hành của file excel đang mở mà. nên mới là wb=xl.activeworkbook và ws=wb.acttivesheet

khi bạn nhờ xem file hộ không nên biên dịch thành exe vì nếu thế lại thành ra là " thầy bói xem voi rồi"
 
Chỉnh sửa lần cuối bởi điều hành viên:
theo yêu cầu của bạn là in sheet hiện hành của file excel đang mở mà. nên mới là wb=xl.activeworkbook và ws=wb.acttivesheet

Vậy có thể chỉ định rõ file không bạn ?

Hi, bạn ấy hỏi demo nên mình nghĩ gửi chương trình lên, do hiểu nhầm là bạn ấy muốn xem có thật là mình có viết cái ứng dụng đó hay nói láo.
 
Chỉnh sửa lần cuối bởi điều hành viên:
chỉ demo là cái file bạn làm ví dụ. không cần thiết là file chuẩn của bạn vì nhiều lý do khác nhau nên không muốn nêu ra file thật. muốn chỉ định file bạn sửa lại wb=xl.open ... file của bạn.

còn muốn dùng sheet nào cố định sửa tiếp ws=wb.sheet("sheet của bạn")
 
Chỉnh sửa lần cuối bởi điều hành viên:
wb=xl.open...file. Nó dở ở chỗ đó đấy, như mình đã viết ở đề tài khi nhờ mọi người giúp, mình tìm code hướng dẫn của mọi người trên mạng, nhưng cứ phải mở file đó lên rồi mới phát lệnh in. Mình không muốn thế, vì chương trình hiệu chỉnh luôn file đang chạy và phát lệnh in luôn. Thế này nhé, trước đây: chương trình tạo nhãn, tạo ra nhãn là file excel từ một file nhãn mẫu và phát lệnh printpreview, người dùng xem lại và ấn nút print là xong. Nhưng do có một số vấn đề về chất lượng, muốn kiểm soát rõ ràng nên thêm vào một số thông tin, mà trong trương trình tạo nhãn không làm được cái này, gõ bằng tay thì rất lâu, nếu dùng chương trình tạo nhãn thì nhãn được tạo ra luôn là file mới, không thể dùng cách đặt sẵn công thức trong file mẫu được nên mình nghĩ là sau khi chương trình tạo nhãn tạo ra file excel như trên và mở sẵn nó lên rồi, ứng dụng chỉ cần hiệu chỉnh luôn và phát lệnh in mỗi lần ấn nút hiệu chỉnh. Có một cách khác là không dùng chương trình hiệu chỉnh nữa, dùng chương trình tạo nhãn tạo ra và lưu file (excel) nhãn của tất cả các mã hàng, đặt công thức vào các mục cần thay đổi của file excel này, mối lần in, nhập thông tin vào file excel rồi in, nhưng mình không muốn làm thế, vì một số lý do...
 
Lần chỉnh sửa cuối:
đầu tiên thì hiểu, giờ thì... không hiểu ... khó quá đi.
tóm lại: file excel không sửa, file vb6 làm động tác điền thêm dữ liệu vào sheet rồi in nhưng không lưu lại kết quả.??? chả hiểu đúng không. có file và yêu cầu cụ thể thì hay.
 
Nói chung bây giờ nếu muốn xem giúp thì đưa toàn bộ file chưa biên dịch lên, người ta sửa thẳng vào đó luôn, nói vòng vòng hong giải quyết được vấn đề.
 
Đang trong giờ làm nên mình hơi bận, tối rảnh mình sẽ thêm phần code in của bạn vào và nhờ bạn xem giúp. Mình cũng không biết nhiều VB6 lắm, lúc sinh viên thích nên tìm hiểu biết một chút, code viết theo một bài hướng dẫn của bác Trường Phú bên Câu lạc bộ VB, mình sửa thủ công nhiều và không được chuyên nghiệp gì cả. Bây giờ mọi người dùng VB.NET nhiều, không dùng VB6 mấy nữa.
 
Web KT

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

Back
Top Bottom