返回列表 上一主題 發帖

徵求高手幫我解決一下這個問題

回復 1# 藍天麗池
提供參考:
  1.         .[A3].Resize(1, 8).Font.FontStyle = "粗體"
複製代碼

TOP

回復 4# 藍天麗池
  1. Sub RecordPrice()
  2.     Dim WR As Long

  3.     '  ActiveWindow.ScrollRow = WR - 5 '  只顯示最新幾筆資料
  4.     Application.ScreenUpdating = False

  5.     With Sheets("RTD")
  6.         If .Range("H2") < 1 Then Exit Sub

  7.         WR = Range("A1").End(xlDown).Row + 1
  8.         If (WR = 3) Or _
  9.                 (.Range("G" & WR - 1) <> .Range("G2")) Then  ' 總量有異動時才記錄
  10.             .Rows(3).Insert
  11.             .[A3].Resize(1, 8) = .[A2].Resize(1, 8).Value
  12.             .[A3].Resize(1, 8).Font.FontStyle = "粗體"
  13.         End If
  14.     End With

  15.     Application.ScreenUpdating = True
  16. End Sub
複製代碼

TOP

本帖最後由 c_c_lai 於 2015-12-29 08:03 編輯

回復 6# 藍天麗池
.

TOP

回復 6# 藍天麗池
  1. If (WR = 3) Or _

  2.                  (.Range("G" & WR - 1) <> .Range("G2")) Then  ' 總量有異動時才記錄
複製代碼
與
  1. If (WR = 3) Or _
  2.                  (.Range("G" & WR - 1) <> .Range("G2")) Then  ' 總量有異動時才記錄
複製代碼
是個完全不同的敘述,『_』接續的語句後面是不能有空行的,否則會是個「不合法的語法」。
另外你要哪個部位要顯示『粗體』,是你個人自行設定的。範例只是要告訴你設定的方法,
.[A3].Resize(1, 8).Font.FontStyle = "粗體" 是設定該行全為『粗體』,若你只要 G 欄設定為
『粗體』,則便應改成  .[G3].Font.FontStyle = "粗體"。隨你個人之應用。假設 G2 > 9 才變
為粗體,則更改成「 .[G3].Font.FontStyle = IIf(.[G2] > 9, "粗體", "標準")」即可。

TOP

本帖最後由 c_c_lai 於 2015-12-29 19:00 編輯

回復 9# 藍天麗池
不好意思請問「同格式化條件」指的是甚麼?
能否說明一下,這樣我才知你要的是什麼。
最好有個例子畫葫一下,因為我還沒反應過來。

TOP

回復 11# 藍天麗池

TOP

本帖最後由 c_c_lai 於 2015-12-30 07:32 編輯

回復 16# 藍天麗池
設定程序:

測試結果:

TOP

回復 18# 藍天麗池
我終於了解你的意思了。
因為當初你的原始程式裡,有如下之條件:
(1)
        If .Range("H2") < 1 Then Exit Sub    '  當 H2 值小於 1 時則不處理,直接逕行跳離。
(2)
        WR = Range("A1").End(xlDown).Row + 1

        If (WR = 3) Or (.Range("G" & WR - 1) <> .Range("G2")) Then  ' 總量有異動時才記錄

        當所有紀錄為空,亦或是 G2 欄值與 最後一筆的值 不等時才去寫入第三列 (Rows(3)) 之
        資料。你檢查一下你資料錄最後一筆之 G 欄值為何,是否與 G2 欄值一致?
        因為我不知你原先意圖為何,只能照舊寫入。 從 第三列的匯入 (.Rows(3).Insert) 方式來看,
       依我個人的處理習慣,我是不會拿資料錄最底下(最後)一筆的記錄之值做比對,因為目前之
       第三列的匯入值才是你最後之匯入值 (最新的匯入值)。所以經你一說我才明了你最後表達的意思。
       應該是:
  1.         If (WR = 3) Or (.[G3] <> .[G2]) Then      ' 總量有異動時才記錄
複製代碼

TOP

回復 21# 藍天麗池
  1. Sub RecordPrice()      '  從第三行插入模式
  2.     Dim WR As Long

  3.     Application.ScreenUpdating = False

  4.     With Sheets("RTD")
  5.         If .Range("H2") < 1 Then Exit Sub

  6.         WR = Range("A1").End(xlDown).Row + 1

  7.         If (WR = 3) Or (.[G3] <> .[G2]) Then   ' 總量有異動時才記錄
  8.             .Rows(3).Insert
  9.             .[A3].Resize(1, 8) = .[A2].Resize(1, 8).Value
  10.             .[G3].Font.FontStyle = IIf(.[G2] > 9, "粗體", "標準")
  11.             .[G3].Font.Color = IIf(.[G2] > 9, 255, 2)
  12.         End If
  13.     End With

  14.     Application.ScreenUpdating = True
  15. End Sub
複製代碼

TOP

回復 20# 藍天麗池
  1. Sub RecordPrice()      '  往下遞增模式
  2.     Dim WR As Long

  3.     Application.ScreenUpdating = False

  4.     With Sheets("RTD")
  5.         If .Range("H2") < 1 Then Exit Sub

  6.         WR = Range("A1").End(xlDown).Row + 1

  7.         If (WR = 3) Or (.Range("G" & WR - 1) <> .[G2]) Then  ' 總量有異動時才記錄
  8.             .Range("A" & WR).Resize(1, 8) = .[A2].Resize(1, 8).Value
  9.             .Range("G" & WR).Font.FontStyle = IIf(.[G2] > 9, "粗體", "標準")
  10.             .Range("G" & WR).Font.Color = IIf(.[G2] > 9, 255, 2)
  11.         End If
  12.     End With

  13.     Application.ScreenUpdating = True
  14. End Sub
複製代碼

TOP

        靜思自在 : 小事不做、大事難成。
返回列表 上一主題