Pi-Pikachu
Thành viên chính thức
- Tham gia
- 22/2/21
- Bài viết
- 71
- Được thích
- 22
=IFERROR(INDEX($E$3:$E$5;MATCH($A$1*8-8+ROW(A1)*2-2+COLUMN(A1);MMULT(IF(ROW($F$3:$F$6)>=TRANSPOSE(ROW($F$3:$F$6));1;0);$F$3:$F$6+0)-$F$3:$F$6+1));"")
Sub InIn()
Dim i As Long
Application.Calculation = xlCalculationAutomatic
For i = 1 To Int((Application.Sum(Sheet1.Range("F3:F5")) - 1) / 8) + 1
Sheet1.Range("A1").Value = i
Sheet1.PrintPreview
Next
End Sub
Bạn thử tham khảo. .
Thêm cách khách tham khảo:Nhờ các bạn giúp đỡ em câu lệnh in này với.
Sub ABC()
Dim sArr(), i&, N&, c%, r%, ii&
With Sheets("Sheet1")
sArr = .Range("E3:F" & .Range("E" & Rows.Count).End(3).Row).Value
For i = 1 To UBound(sArr)
For ii = 1 To sArr(i, 2)
If N = 0 Then .Range("B3:C6").ClearContents
N = N + 1
If N Mod 2 = 1 Then r = r + 1: c = 1 Else c = 2
.Cells(r + 2, c + 1).Value = sArr(i, 1)
If N = 8 Then N = 0: r = 0: .Range("B3:C6").PrintPreview
Next
Next
If N > 0 Then .Range("B3:C6").PrintPreview
End With
End Sub
Vụ này không cho chủ mà chỉ cho khách tham khảo nhỉ.Thêm cách khách tham khảo:
2 nghĩa ấy anh. Cho thành viên tham khảo thôi. Chứ thớt chưa chắc đã sài đâu mà anh. HihiVụ này không cho chủ mà chỉ cho khách tham khảo nhỉ.
Nhiều cách tự nhiên lại khó chọn.2 nghĩa ấy anh. Cho thành viên tham khảo thôi. Chứ thớt chưa chắc đã sài đâu mà anh. Hihi
Đang tính làm rối loạn triều đình thớt luôn. .Chúc anh và mọi người giáng sinh an lành nhéNhiều cách tự nhiên lại khó chọn.
Sao mảng cố định không gán cả mảng xuống mà lại đi gán từng ô.Đang tính làm rối loạn triều đình thớt luôn. .Chúc anh và mọi người giáng sinh an lành nhé
Định đưa vào mảng. Thấy mảng có 8 phần tử. Nên lười. Cho xuống sheet luôn đỡ phải viết nhiều anh ạSao mảng cố định không gán cả mảng xuống mà lại đi gán từng ô.
Kết hợp công thức và macro cho đơn giản.
--
Công thức mảng tại B3, copy ra B3:C6
Code inMã:=IFERROR(INDEX($E$3:$E$5;MATCH($A$1*8-8+ROW(A1)*2-2+COLUMN(A1);MMULT(IF(ROW($F$3:$F$6)>=TRANSPOSE(ROW($F$3:$F$6));1;0);$F$3:$F$6+0)-$F$3:$F$6+1));"")
Mã:Sub InIn() Dim i As Long Application.Calculation = xlCalculationAutomatic For i = 1 To Int((Application.Sum(Sheet1.Range("F3:F5")) - 1) / 8) + 1 Sheet1.Range("A1").Value = i Sheet1.PrintPreview Next End Sub
Bạn thử tham khảo. .
Cảm ơn các bạn rất nhiều.Thêm cách khách tham khảo:
Mã:Sub ABC() Dim sArr(), i&, N&, c%, r%, ii& With Sheets("Sheet1") sArr = .Range("E3:F" & .Range("E" & Rows.Count).End(3).Row).Value For i = 1 To UBound(sArr) For ii = 1 To sArr(i, 2) If N = 0 Then .Range("B3:C6").ClearContents N = N + 1 If N Mod 2 = 1 Then r = r + 1: c = 1 Else c = 2 .Cells(r + 2, c + 1).Value = sArr(i, 1) If N = 8 Then N = 0: r = 0: .Range("B3:C6").PrintPreview Next Next If N > 0 Then .Range("B3:C6").PrintPreview End With End Sub