Board logo

標題: [發問] 如何判斷內容是否所需以及是否自動列印 [打印本頁]

作者: starry1314    時間: 2016-1-12 13:25     標題: 如何判斷內容是否所需以及是否自動列印

本帖最後由 starry1314 於 2016-1-12 13:27 編輯

共有數十張,範圍與條件都一樣 但往右有空一間隔欄,往下則一間隔列

1.列印範圍-紅框內
2.列印方式-選擇範圍&所有列放入
3.判斷方式-日期底下(第一列第一格),內容只要包含  文字>>【空白】<<文字 則不列印
[attach]23092[/attach]
[attach]23093[/attach]
作者: lpk187    時間: 2016-1-12 14:41

回復 1# starry1314

檔案內容排列有誤,請自行更正!!(多了2列)
"兩送(菜組)-1"的第一格為空白,所以這張不會列印
"早餐(自備組)-1"、"午餐(自備組)-1"、"晚餐(自備組)-1"這裡頁則第一格有文字,會列印
  1. Option Explicit
  2. Sub 列印()
  3.     Dim I%, J%, X%, Y%, ades
  4.     For I = 1 To 9
  5.         For J = 1 To 6
  6.             X = I * 20 - 19: Y = J * 6 - 5
  7.             If Cells(X, Y).Offset(2).Value <> "" Then
  8.                 ades = Range(Cells(X + 1, Y), Cells(I * 20, J * 6 - 1)).Address
  9.                 'ActiveSheet.PageSetup.PrintArea = ades
  10.                 Range(ades).PrintOut Copies:=1, Collate:=True
  11.             End If
  12.         Next
  13.     Next
  14. End Sub
複製代碼

作者: starry1314    時間: 2016-1-12 15:27

回復 2# lpk187


    Option Explicit
Sub 列印()
    Dim I%, J%, X%, Y%, ades
    For I = 1 To 9
        For J = 1 To 6
            X = I * 20 - 19: Y = J * 6 - 5
            If Cells(X, Y).Offset(2).Value <> "*空白*" Then  '請問這如何用萬用字元呢?  想改成 *空白*則不印   
                ades = Range(Cells(X + 1, Y), Cells(I * 20, J * 6 - 1)).Address
                'ActiveSheet.PageSetup.PrintArea = ades
                Range(ades).PrintOut Copies:=1, Collate:=True
            End If
        Next
    Next
End Sub
作者: starry1314    時間: 2016-1-12 15:56

回復 2# lpk187

改為這樣但遇到沒有空白兩字 但是空白儲存格的話還是照印
有辦法兩個條件並存嗎?
出現空白兩字或是單純空白儲存格都不印
  1. Sub 列印()
  2.     Dim I%, J%, X%, Y%, ades
  3.     For I = 1 To 9 '往下張數
  4.         For J = 1 To 6 '每張欄數
  5.             X = I * 20 - 19: Y = J * 6 - 5  '20=列數-19 扣除標題 6=欄數-5扣除間隔欄
  6.             If InStr(Cells(X, Y).Offset(2).Value, 空白) = 0 Then
  7.                 ades = Range(Cells(X + 1, Y), Cells(I * 20, J * 6 - 1)).Address
  8.                 'ActiveSheet.PageSetup.PrintArea = ades
  9.                 Range(ades).PrintOut Copies:=1, Collate:=True
  10.             End If
  11.         Next
  12.     Next
  13. End Sub
複製代碼

作者: lpk187    時間: 2016-1-12 16:25

回復 4# starry1314
  1. Sub 列印()
  2.     Dim I%, J%, X%, Y%, ades, kk
  3.     For I = 1 To 9 '往下張數
  4.         For J = 1 To 6 '每張欄數
  5.             X = I * 20 - 19: Y = J * 6 - 5  '20=列數-19 扣除標題 6=欄數-5扣除間隔欄
  6.             kk = InStr(Cells(X, Y).Offset(2).Value, "空白")
  7.             If InStr(Cells(X, Y).Offset(2).Value, "空白") = 0 And Cells(X, Y).Offset(2).Value <> "" Then
  8.                 ades = Range(Cells(X + 1, Y), Cells(I * 20, J * 6 - 1)).Address
  9.                 'ActiveSheet.PageSetup.PrintArea = ades
  10.                 Range(ades).PrintOut Copies:=1, Collate:=True
  11.             End If
  12.         Next
  13.     Next
  14. End Sub
複製代碼

作者: starry1314    時間: 2016-1-12 16:27

回復 5# lpk187


    謝謝....腦袋真的打結了,沒想到AND
只想到多寫一行




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)