返回列表 上一主題 發帖

[發問] 格式化條件,有值則顯示整數列框架

本帖最後由 register313 於 2012-4-5 11:24 編輯

回復 10# jackson7015

1.檢視/分頁預覽  手動調整列印範圍

2.VBA
功能:當C欄列號個位數為3之儲存格值有變動時且該儲存格不為空值=>自動加10列框線
         當C欄列號個位數為3之儲存格值有變動時且該儲存格為空值=>自動取消10列框線
工作表模組
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If (Target.Column = 3) And (Target.Row Mod 10) = 3 Then
  3.    If Target <> "" Then
  4.       Target.Resize(10, 7).Borders.LineStyle = xlContinuous
  5.    Else
  6.       Target.Resize(10, 7).Borders.LineStyle = xlNone
  7.    End If
  8. End If
  9. End Sub
複製代碼

TOP

回復 11# register313

感謝register313大大的回應

想請教此種Private Sub巨集直接開新巨集下去使用就好了嗎?
還是要插入到列印巨集內?

我使用新巨集下去使用時,會連結導入其他巨集
而我導入到新建的列印巨集中,好像沒有變更列印範圍

TOP

回復 12# jackson7015
看看符不符你的需求
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If (Target.Column = 3) And (Target.Row Mod 10) = 3 Then
  3.    If Target <> "" Then
  4.       Target.Resize(10, 7).Borders.LineStyle = xlContinuous
  5.       PageSetup.PrintArea = "C1:I" & Target.Row + 9
  6.    Else
  7.       Target.Resize(10, 7).Borders.LineStyle = xlNone
  8.       PageSetup.PrintArea = "C1:I" & Target.Row - 1
  9.    End If
  10. End If
  11. End Sub
複製代碼

1.gif

TOP

回復 13# register313

感謝register313大大的幫忙

若是C欄列號個位數為6的話,是否更改為下式
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If (Target.Column = 6) And (Target.Row Mod 10) = 6 Then
  3.    If Target <> "" Then
  4.       Target.Resize(10, 4).Borders.LineStyle = xlContinuous
  5.       PageSetup.PrintArea = "C1:I" & Target.Row + 9
  6.    Else
  7.       Target.Resize(10, 4).Borders.LineStyle = xlNone
  8.       PageSetup.PrintArea = "C1:I" & Target.Row - 1
  9.    End If
  10. End If
  11. End Sub
複製代碼
但是更改後好像是錯誤的,反而沒有動作..

可能要再麻煩register313大大協助一下

TOP

回復 14# jackson7015


If (Target.Column = 3) And (Target.Row Mod 10) = 6 Then
     欄號為3                                    列號/10後餘數為6

TOP

回復 15# register313

已經可以正常變更列印範圍了,感謝register313大大

想請教,我是將工作頁面以樞紐分析表作整理

在手動測試大大提供的測試碼時發現,若是將C欄資料一次刪除或者一次變更至多頁
好像無法判斷c欄變動的範圍,只會依照重新整理前的列印範圍表示

TOP

回復 16# jackson7015

11# 之說明
功能:當C欄列號個位數為3之儲存格值有變動時且該儲存格不為空值=>自動加10列框線
     當C欄列號個位數為3之儲存格值有變動時且該儲存格為空值=>自動取消10列框線
13# 之動畫說明
=>目前提供之方法,適合C欄儲存格逐格往下輸入之操作方式

若是C欄資料已事先建立好,要一次判斷全部之框線,則程式要作修改(若要修改請附檔案)

TOP

路過額外問一個問題
格式化條件在什麼情況下會被破壞掉?
因為製作的檔案放在公開使用區裡常有格式消失的狀況
使用者非常多,實在抓不出誰弄壞
一直找不到格式被破壞是做了什麼操作

TOP

回復 18# vvcvc

任何儲存格、欄、列的複製、插入或刪除都可能影響格式化條件
學海無涯_不恥下問

TOP

本帖最後由 jackson7015 於 2012-4-9 08:50 編輯

回復 17# register313

功能需求:
當C欄列號個位數為6之儲存格值有變動時且該儲存格不為空值=>自動加10列框線
當C欄列號個位數為6之儲存格值有變動時且該儲存格為空值=>自動取消10列框線
當E6之儲存格值有變動時且該儲存格為空值=>自動取消列印範圍(無列印)
且當C欄列號個位數為6之儲存格值有變動時=>隨時判斷列印範圍
日報表.rar (491.66 KB)

麻煩大大了,由衷感謝..

TOP

        靜思自在 : 生氣,就是拿別人的過錯來懲罰自己。
返回列表 上一主題