Giúp mình in ấn từ trang đến trang trong excel! (1 người xem)

Liên hệ QC

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

thanhnam0119

Thành viên hoạt động
Tham gia
5/10/07
Bài viết
152
Được thích
4
Chào các a chị! Nhờ các a chị giúp đỡ
em có file sheet "tổng hợp" và sheet "bieu_01bd" giờ em muốn in từ trang đến trang theo các hộ gia đình(mỗi hộ gia đình 1 trang). Xin các a chị giúp đỡ lệnh thể hiện hoàng loạt với tiêu chí mỗi hộ 1 trang in (theo mẫu ở sheet "bieu_01BD". E xin cảm ơn nhiều.
Option Explicit

Sub intheoho1()
Dim arr, arr1, dic As Object, lr As Long, i As Long, T, T1, a, s As String
Set dic = CreateObject("scripting.dictionary")
With Sheets("tong hop")
lr = .Range("B" & Rows.Count).End(xlUp).Row
If lr < 3 Then Exit Sub
arr = .Range("B3:L" & lr).Value
End With
For i = 1 To UBound(arr, 1)
If Not dic.exists(arr(i, 1)) Then
dic.Add arr(i, 1), i
Else
dic.Item(arr(i, 1)) = dic.Item(arr(i, 1)) & "#" & i
End If
Next i
For Each T In dic.keys
a = 0: ReDim arr1(1 To UBound(arr, 1), 1 To 10)
s = dic.Item(T)
For Each T1 In Split(s, "#")
a = a + 1
arr1(a, 1) = a
arr1(a, 2) = arr(T1, 3)
arr1(a, 3) = arr(T1, 2)
arr1(a, 4) = arr(T1, 4)
arr1(a, 5) = arr(T1, 5)
arr1(a, 6) = arr(T1, 8)
arr1(a, 7) = arr(T1, 9)
arr1(a, 8) = arr(T1, 7)
arr1(a, 9) = arr(T1, 1)
arr1(a, 10) = arr(T1, 11)
Next
With Sheets("Bieu 01_BD")
.Range("A14:j24").ClearContents
.Rows("14:24").EntireRow.Hidden = False
.Range("A14").Resize(a, 10) = arr1
.Rows(a + 14 & ":24").EntireRow.Hidden = True
.PrintPreview
End With
Next
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Chào các a chị! Nhờ các a chị giúp đỡ
em có file sheet "tổng hợp" và sheet "bieu_01bd" giờ em muốn in từ trang đến trang theo các hộ gia đình(mỗi hộ gia đình 1 trang). Xin các a chị giúp đỡ lệnh thể hiện hoàng loạt với tiêu chí mỗi hộ 1 trang in (theo mẫu ở sheet "bieu_01BD". E xin cảm ơn nhiều.
Option Explicit

Sub intheoho1()
Dim arr, arr1, dic As Object, lr As Long, i As Long, T, T1, a, s As String
Set dic = CreateObject("scripting.dictionary")
With Sheets("tong hop")
lr = .Range("B" & Rows.Count).End(xlUp).Row
If lr < 3 Then Exit Sub
arr = .Range("B3:L" & lr).Value
End With
For i = 1 To UBound(arr, 1)
If Not dic.exists(arr(i, 1)) Then
dic.Add arr(i, 1), i
Else
dic.Item(arr(i, 1)) = dic.Item(arr(i, 1)) & "#" & i
End If
Next i
For Each T In dic.keys
a = 0: ReDim arr1(1 To UBound(arr, 1), 1 To 10)
s = dic.Item(T)
For Each T1 In Split(s, "#")
a = a + 1
arr1(a, 1) = a
arr1(a, 2) = arr(T1, 3)
arr1(a, 3) = arr(T1, 2)
arr1(a, 4) = arr(T1, 4)
arr1(a, 5) = arr(T1, 5)
arr1(a, 6) = arr(T1, 8)
arr1(a, 7) = arr(T1, 9)
arr1(a, 8) = arr(T1, 7)
arr1(a, 9) = arr(T1, 1)
arr1(a, 10) = arr(T1, 11)
Next
With Sheets("Bieu 01_BD")
.Range("A14:j24").ClearContents
.Rows("14:24").EntireRow.Hidden = False
.Range("A14").Resize(a, 10) = arr1
.Rows(a + 14 & ":24").EntireRow.Hidden = True
.PrintPreview
End With
Next
End Sub
Bạn sửa theo code này nhé.Mấy hôm trước mình ốm không sửa được.
Mã:
Sub intheoho1()
    Dim arr, arr1, dic As Object, lr As Long, i As Long, T, T1, a, s As String, s1 As String, s2 As String
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("tong hop")
         lr = .Range("B" & Rows.Count).End(xlUp).Row
         If lr < 3 Then Exit Sub
         arr = .Range("B3:L" & lr).Value
    End With
    For i = 1 To UBound(arr, 1)
    If Len(arr(i, 1)) > 0 Then
        If Not dic.exists(arr(i, 1)) Then
           dic.Add arr(i, 1), i
        Else
           dic.Item(arr(i, 1)) = dic.Item(arr(i, 1)) & "#" & i
        End If
    End If
    Next i
      For Each T In dic.keys
        a = 0: ReDim arr1(1 To UBound(arr, 1), 1 To 10)
        s = dic.Item(T)
        s1 = Empty: s2 = Empty
        For Each T1 In Split(s, "#")
            a = a + 1
            arr1(a, 1) = a
            arr1(a, 2) = arr(T1, 3)
            arr1(a, 3) = arr(T1, 2)
            arr1(a, 4) = arr(T1, 4)
            arr1(a, 5) = arr(T1, 5)
            arr1(a, 6) = arr(T1, 8)
            arr1(a, 7) = arr(T1, 9)
            arr1(a, 8) = arr(T1, 7)
            arr1(a, 9) = arr(T1, 1)
            arr1(a, 10) = arr(T1, 11)
            If UCase(arr(T1, 9)) = UCase("Ch" & ChrW(7911) & " h" & ChrW(7897)) Then s1 = arr(T1, 3)
            s2 = arr(T1, 10)
       Next
       With Sheets("Bieu 01_BD")
            .Range("A14:j24").ClearContents
            .Range("C8").Value = s1
            .Range("D9").Value = s2
            .Range("F9").Value = "Xã (Th" & ChrW(7883) & " Tr" & ChrW(7845) & "n) : " & arr1(1, 6)
            .Rows("14:24").EntireRow.Hidden = False
            .Range("A14").Resize(a, 10) = arr1
            .Rows(a + 14 & ":24").EntireRow.Hidden = True
            .PrintPreview
       End With
   Next
End Sub
 
Upvote 0
Bạn sửa theo code này nhé.Mấy hôm trước mình ốm không sửa được.
Mã:
Sub intheoho1()
    Dim arr, arr1, dic As Object, lr As Long, i As Long, T, T1, a, s As String, s1 As String, s2 As String
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("tong hop")
         lr = .Range("B" & Rows.Count).End(xlUp).Row
         If lr < 3 Then Exit Sub
         arr = .Range("B3:L" & lr).Value
    End With
    For i = 1 To UBound(arr, 1)
    If Len(arr(i, 1)) > 0 Then
        If Not dic.exists(arr(i, 1)) Then
           dic.Add arr(i, 1), i
        Else
           dic.Item(arr(i, 1)) = dic.Item(arr(i, 1)) & "#" & i
        End If
    End If
    Next i
      For Each T In dic.keys
        a = 0: ReDim arr1(1 To UBound(arr, 1), 1 To 10)
        s = dic.Item(T)
        s1 = Empty: s2 = Empty
        For Each T1 In Split(s, "#")
            a = a + 1
            arr1(a, 1) = a
            arr1(a, 2) = arr(T1, 3)
            arr1(a, 3) = arr(T1, 2)
            arr1(a, 4) = arr(T1, 4)
            arr1(a, 5) = arr(T1, 5)
            arr1(a, 6) = arr(T1, 8)
            arr1(a, 7) = arr(T1, 9)
            arr1(a, 8) = arr(T1, 7)
            arr1(a, 9) = arr(T1, 1)
            arr1(a, 10) = arr(T1, 11)
            If UCase(arr(T1, 9)) = UCase("Ch" & ChrW(7911) & " h" & ChrW(7897)) Then s1 = arr(T1, 3)
            s2 = arr(T1, 10)
       Next
       With Sheets("Bieu 01_BD")
            .Range("A14:j24").ClearContents
            .Range("C8").Value = s1
            .Range("D9").Value = s2
            .Range("F9").Value = "Xã (Th" & ChrW(7883) & " Tr" & ChrW(7845) & "n) : " & arr1(1, 6)
            .Rows("14:24").EntireRow.Hidden = False
            .Range("A14").Resize(a, 10) = arr1
            .Rows(a + 14 & ":24").EntireRow.Hidden = True
            .PrintPreview
       End With
   Next
End Sub
A giúp em tiêu chí in từ trang đến trang được không ạ. nhỡ in máy in lỗi muốn in lại trang mình cần in ạ
 
Upvote 0
. E cảm ơn a nhiều. a có hàm nào đếm mã hộ trùng chỉ lấy 1 giá trị duy nhất không ạ. để e căn cứ vào tính số trang in a à
Bạn test cái này xem.
Mã:
Sub intheoho1()
    Dim arr, arr1, dic As Object, lr As Long, i As Long, T, T1, a, s As String, s1 As String, s2 As String, arr2, k As Long, bd As Long, kt As String
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("tong hop")
         lr = .Range("B" & Rows.Count).End(xlUp).Row
         If lr < 3 Then Exit Sub
         arr = .Range("B3:L" & lr).Value
      If Len(.Range("P1")) = 0 Then Exit Sub Else bd = .Range("P1").Value - 1
      If Len(.Range("R1")) = 0 Then Exit Sub Else kt = .Range("R1").Value - 1
    End With
    For i = 1 To UBound(arr, 1)
    If Len(arr(i, 1)) > 0 Then
        If Not dic.exists(arr(i, 1)) Then
           dic.Add arr(i, 1), i
        Else
           dic.Item(arr(i, 1)) = dic.Item(arr(i, 1)) & "#" & i
        End If
    End If
    Next i
    arr2 = dic.keys
    If kt > dic.Count Then MsgBox "so kt qua lon" & " lon nhat là :" & dic.Count: Exit Sub
      For k = bd To kt
        a = 0: ReDim arr1(1 To UBound(arr, 1), 1 To 10)
        s = dic.Item(arr2(k))
        s1 = Empty: s2 = Empty
        For Each T1 In Split(s, "#")
            a = a + 1
            arr1(a, 1) = a
            arr1(a, 2) = arr(T1, 3)
            arr1(a, 3) = arr(T1, 2)
            arr1(a, 4) = arr(T1, 4)
            arr1(a, 5) = arr(T1, 5)
            arr1(a, 6) = arr(T1, 8)
            arr1(a, 7) = arr(T1, 9)
            arr1(a, 8) = arr(T1, 7)
            arr1(a, 9) = arr(T1, 1)
            arr1(a, 10) = arr(T1, 11)
            If UCase(arr(T1, 9)) = UCase("Ch" & ChrW(7911) & " h" & ChrW(7897)) Then s1 = arr(T1, 3)
            s2 = arr(T1, 10)
       Next
       With Sheets("Bieu 01_BD")
            .Range("A14:j24").ClearContents
            .Range("C8").Value = s1
            .Range("D9").Value = s2
            .Range("F9").Value = "Xã (Th" & ChrW(7883) & " Tr" & ChrW(7845) & "n) : " & arr1(1, 6)
            .Rows("14:24").EntireRow.Hidden = False
            .Range("A14").Resize(a, 10) = arr1
            .Rows(a + 14 & ":24").EntireRow.Hidden = True
            .PrintPreview
       End With
   Next
End Sub
 
Upvote 0
Bạn test cái này xem.
Mã:
Sub intheoho1()
    Dim arr, arr1, dic As Object, lr As Long, i As Long, T, T1, a, s As String, s1 As String, s2 As String, arr2, k As Long, bd As Long, kt As String
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("tong hop")
         lr = .Range("B" & Rows.Count).End(xlUp).Row
         If lr < 3 Then Exit Sub
         arr = .Range("B3:L" & lr).Value
      If Len(.Range("P1")) = 0 Then Exit Sub Else bd = .Range("P1").Value - 1
      If Len(.Range("R1")) = 0 Then Exit Sub Else kt = .Range("R1").Value - 1
    End With
    For i = 1 To UBound(arr, 1)
    If Len(arr(i, 1)) > 0 Then
        If Not dic.exists(arr(i, 1)) Then
           dic.Add arr(i, 1), i
        Else
           dic.Item(arr(i, 1)) = dic.Item(arr(i, 1)) & "#" & i
        End If
    End If
    Next i
    arr2 = dic.keys
    If kt > dic.Count Then MsgBox "so kt qua lon" & " lon nhat là :" & dic.Count: Exit Sub
      For k = bd To kt
        a = 0: ReDim arr1(1 To UBound(arr, 1), 1 To 10)
        s = dic.Item(arr2(k))
        s1 = Empty: s2 = Empty
        For Each T1 In Split(s, "#")
            a = a + 1
            arr1(a, 1) = a
            arr1(a, 2) = arr(T1, 3)
            arr1(a, 3) = arr(T1, 2)
            arr1(a, 4) = arr(T1, 4)
            arr1(a, 5) = arr(T1, 5)
            arr1(a, 6) = arr(T1, 8)
            arr1(a, 7) = arr(T1, 9)
            arr1(a, 8) = arr(T1, 7)
            arr1(a, 9) = arr(T1, 1)
            arr1(a, 10) = arr(T1, 11)
            If UCase(arr(T1, 9)) = UCase("Ch" & ChrW(7911) & " h" & ChrW(7897)) Then s1 = arr(T1, 3)
            s2 = arr(T1, 10)
       Next
       With Sheets("Bieu 01_BD")
            .Range("A14:j24").ClearContents
            .Range("C8").Value = s1
            .Range("D9").Value = s2
            .Range("F9").Value = "Xã (Th" & ChrW(7883) & " Tr" & ChrW(7845) & "n) : " & arr1(1, 6)
            .Rows("14:24").EntireRow.Hidden = False
            .Range("A14").Resize(a, 10) = arr1
            .Rows(a + 14 & ":24").EntireRow.Hidden = True
            .PrintPreview
       End With
   Next
End Sub
vẫn chưa thể hiện trang in anh à
 
Upvote 0

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Giúp hộ e nốt thêm tên chủ hộ của nút lấy danh sách in được không anh, à em quên mất a giúp bổ sung nếu không có mã hộ vẫn in được anh à
Không có mã hộ không in được bạn nhé.Vì nó không lấy được dữ liệu.Bạn xem file.
 

File đính kèm

Upvote 0
Bạn đặt cho nó 1 cái mã riêng biệt ra.Vì nó không có mã hộ.Thì làm sao biết hộ đấy có bao nhiêu người.
a ơi a giúp em sửa file những thành viên hộ gia đình ở sheet Tổng hợp có nội dung ở cột L thì thể hiện lên ở mẫu 01_BD còn không có thì không thể hiện được ko ạ
 

File đính kèm

Upvote 0
a ơi a giúp em sửa file những thành viên hộ gia đình ở sheet Tổng hợp có nội dung ở cột L thì thể hiện lên ở mẫu 01_BD còn không có thì không thể hiện được ko ạ
Bạn xem.
Mã:
Sub intheoho1()
    Dim arr, arr1, dic As Object, lr As Long, i As Long, T, T1, a, s As String, s1 As String, s2 As String, arr2, k As Long, bd As Long, kt As String
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("tong hop")
         lr = .Range("B" & Rows.Count).End(xlUp).Row
         If lr < 3 Then Exit Sub
         arr = .Range("B3:L" & lr).Value
      If Len(.Range("P1")) = 0 Then Exit Sub Else bd = .Range("P1").Value - 1
      If Len(.Range("R1")) = 0 Then Exit Sub Else kt = .Range("R1").Value - 1
    End With
    For i = 1 To UBound(arr, 1)
    If Len(arr(i, 1)) > 0 Then
        If Not dic.exists(arr(i, 1)) Then
           dic.Add arr(i, 1), i
        Else
           dic.Item(arr(i, 1)) = dic.Item(arr(i, 1)) & "#" & i
        End If
    End If
    Next i
    arr2 = dic.keys

      For k = bd To kt
        a = 0: ReDim arr1(1 To UBound(arr, 1), 1 To 10)
        s = dic.Item(arr2(k))
        s1 = Empty: s2 = Empty
        For Each T1 In Split(s, "#")
          If Len(arr(T1, 11)) > 0 Then
            a = a + 1
            arr1(a, 1) = a
            arr1(a, 2) = arr(T1, 3)
            arr1(a, 3) = arr(T1, 2)
            arr1(a, 4) = arr(T1, 4)
            arr1(a, 5) = arr(T1, 5)
            arr1(a, 6) = arr(T1, 8)
            arr1(a, 7) = arr(T1, 9)
            arr1(a, 8) = arr(T1, 7)
            arr1(a, 9) = arr(T1, 1)
            arr1(a, 10) = arr(T1, 11)
            If UCase(arr(T1, 9)) = UCase("Ch" & ChrW(7911) & " h" & ChrW(7897)) Then s1 = arr(T1, 3)
            s2 = arr(T1, 10)
         End If
       Next
       With Sheets("Bieu 01_BD")
            .Range("A14:j24").ClearContents
            .Range("C8").Value = s1
            .Range("D9").Value = s2
            .Range("E9").Value = "Xã (Th" & ChrW(7883) & " Tr" & ChrW(7845) & "n) : " & arr1(1, 6)
            .Rows("14:24").EntireRow.Hidden = False
            If a Then
            .Range("A14").Resize(a, 10) = arr1
            .Rows(a + 14 & ":24").EntireRow.Hidden = True
            .PrintPreview
            End If
       End With
   Next
End Sub
 
Upvote 0
Bạn xem.
Mã:
Sub intheoho1()
    Dim arr, arr1, dic As Object, lr As Long, i As Long, T, T1, a, s As String, s1 As String, s2 As String, arr2, k As Long, bd As Long, kt As String
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("tong hop")
         lr = .Range("B" & Rows.Count).End(xlUp).Row
         If lr < 3 Then Exit Sub
         arr = .Range("B3:L" & lr).Value
      If Len(.Range("P1")) = 0 Then Exit Sub Else bd = .Range("P1").Value - 1
      If Len(.Range("R1")) = 0 Then Exit Sub Else kt = .Range("R1").Value - 1
    End With
    For i = 1 To UBound(arr, 1)
    If Len(arr(i, 1)) > 0 Then
        If Not dic.exists(arr(i, 1)) Then
           dic.Add arr(i, 1), i
        Else
           dic.Item(arr(i, 1)) = dic.Item(arr(i, 1)) & "#" & i
        End If
    End If
    Next i
    arr2 = dic.keys

      For k = bd To kt
        a = 0: ReDim arr1(1 To UBound(arr, 1), 1 To 10)
        s = dic.Item(arr2(k))
        s1 = Empty: s2 = Empty
        For Each T1 In Split(s, "#")
          If Len(arr(T1, 11)) > 0 Then
            a = a + 1
            arr1(a, 1) = a
            arr1(a, 2) = arr(T1, 3)
            arr1(a, 3) = arr(T1, 2)
            arr1(a, 4) = arr(T1, 4)
            arr1(a, 5) = arr(T1, 5)
            arr1(a, 6) = arr(T1, 8)
            arr1(a, 7) = arr(T1, 9)
            arr1(a, 8) = arr(T1, 7)
            arr1(a, 9) = arr(T1, 1)
            arr1(a, 10) = arr(T1, 11)
            If UCase(arr(T1, 9)) = UCase("Ch" & ChrW(7911) & " h" & ChrW(7897)) Then s1 = arr(T1, 3)
            s2 = arr(T1, 10)
         End If
       Next
       With Sheets("Bieu 01_BD")
            .Range("A14:j24").ClearContents
            .Range("C8").Value = s1
            .Range("D9").Value = s2
            .Range("E9").Value = "Xã (Th" & ChrW(7883) & " Tr" & ChrW(7845) & "n) : " & arr1(1, 6)
            .Rows("14:24").EntireRow.Hidden = False
            If a Then
            .Range("A14").Resize(a, 10) = arr1
            .Rows(a + 14 & ":24").EntireRow.Hidden = True
            .PrintPreview
            End If
       End With
   Next
End Sub
- nhưng a ơi ở mẫu 01_bd mất phần thể hiện tên của chủ hộ ạ
- ở phần danh sách có thể mất nhưng ở phần trên vẫn được giữ nguyên tên chủ hộ ạ

1551767816684.png
 
Upvote 0
Web KT

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

Back
Top Bottom