Giúp về file excel có macro không hiện ra dữ liệu ?

Liên hệ QC

nhatnamit

Thành viên mới
Tham gia
19/1/10
Bài viết
15
Được thích
4
Chào các anh chị,

Các anh chị cho mình hỏi, mình có file excel có code macro nhưng không biết bị lỗi gì mà có vài ô có dữ liệu nhưng không hiện lên (xin xem file đính kèm).

Cái nữa là, có cách nào in hàng loạt các phiếu chi mà cần ít thao tác hơn không ? Vì với trường hợp file này mình phải chọn in từng phiếu chi một.

Cám ơn.
 

File đính kèm

  • vba_test.xls
    vba_test.xls
    85.5 KB · Đọc: 21
  • vba_test_trouble.jpg
    vba_test_trouble.jpg
    21.5 KB · Đọc: 6
1. Bạn chọn vùng này và chọn Format\Conditional Formatting sẽ khám phá ra vấn đề (trên Excel 2007, 2010, lệnh này nằm tại tab Home, nhóm Style).
2. Bạn đã có code Worksheet_Change của sheet PHIEUCHI nên có thể thêm code như sau để in tự động:
PHP:
Sub InPhieu()
    Dim Rng As Range
    Sheets("PHIEUCHI").Activate
    For Each Rng In Sheets("DATA").Range("A8:A" & Sheets("DATA").[A65536].End(xlUp).Row)
        [T1] = Rng
        [A1:S25].PrintOut 'Preview:=True'
    Next
End Sub
Nếu chỉ muốn xem thử trang in thì bạn bỏ dấu nháy đơn trước chữ Preview.
 
Upvote 0
Hôm qua đã cố tình đặt 2 tên Nguyễn Văn A để hỏi mà cuối cùng quên mất. Vấn đề có 2 nhân viên trùng tên, thì khi chọn nó chỉ show ra kết quả của nhân viên sau cùng thôi. Có thể chọn bằng cột mã thay cho cột tên nhân viên, tuy nhiên khi đó rắc rối nằm ở chỗ T1, list ra chỉ thấy mã chứ không biết tên nhân viên gì. Không biết có cách nào giải quyết tốt hơn không ?
 
Upvote 0
Bạn cần sửa ở các điểm sau:

(1) Trên trang tính, bạn nhập vô [T3] công thức :
=VLOOKUP(T1,DATA!A7:C42,3,FALSE)
& Format cho nó không màu/màu trắng & không mùi đi nha;

(2) Macro bạn sửa lại theo tham khảo sau:

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [T1]) Is Nothing Then
   Dim Sh1 As Worksheet, Rng1 As Range, SRng1 As Range
   'Declare variable'
   Set Sh1 = Sheets("DATA")
   Set Rng1 = Sh1.Range(Sh1.[C7], Sh1.[C999].End(xlUp))     '<=|'
   Set SRng1 = Rng1.Find([T3].Value, , xlFormulas, xlWhole) '<=|'
   'Show the result'
   If Not SRng1 Is Nothing Then
    [D9].Value = SRng1.Offset(, 5 - 2).Value
    [D10].Value = SRng1.Offset(, 6 - 2).Value
    [D11].Value = SRng1.Offset(, 8 - 2).Value
    [D12].Value = SRng1.Offset(, 9 - 2).Value
    '- - - '
    [F6].Value = "Ng" & ChrW(224) & "y " & Left(SRng1.Offset(, 4 - 2).Value, 2) + " th" & ChrW(225) & "ng " + Mid(SRng1.Offset(, 4 - 2).Value, 4, 2) + " n" & ChrW(259) & "m 20" + Right(SRng1.Offset(, 4 - 2).Value, 2)
    [I7].Value = "PC" & SRng1.Offset(, 1 - 2).Value & "/" & Mid(SRng1.Offset(, 4 - 2).Value, 4, 2) & "/" & "20" & Right(SRng1.Offset(, 4 - 2).Value, 2) & "/ABC"
    '- - - '
    [Q6].Value = SRng1.Offset(, 9 - 2).Value
    [Q7].Value = SRng1.Offset(, 9 - 2).Value
    ' - - - '
    [R22].Value = SRng1.Offset(, 0 - 2).Value
   End If
 End If
End Sub

Sau đó sửa tiếp các số liệu trong các hiệu & chạy thử

(húc thành công!
 
Upvote 0
Cách của @HYen17 hình như vẫn ko ổn. Data validation chỗ T1 (tên người giao) là dữ liệu mình cần nhìn thấy khi chọn để in (2 anh giao nhận cùng tên nhưng làm việc cho 2 cty khác nhau). Cho T3 dò tìm theo giá trị của T1 rồi cả bảng dò giá trị theo T3, nhưng T1 có 2 giá trị trùng tên thì cho dù tìm chính xác nó vẫn ra 1 kết quả tại T3. Giờ tạm thời mình vẫn chịu khó sửa cái tên khác đi tí :D

Về phần in tự động, bạn @nghiaphuc hướng dẫn thêm giùm tí xíu về cách tạo cái nút nhấn Print và in mỗi lần vài trang thôi. Hôm trước có xem thử cái file Phiếu Liên Lạc học sinh nhưng về macro và code vb thì mình kém quá nên không hiểu lắm.

Xin cám ơn
 
Upvote 0
Web KT

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

Back
Top Bottom