返回列表 上一主題 發帖

註解為何次數受限呢?

註解為何次數受限呢?

各位前輩你們好!!   
      早安!
      為何?註解只容許9筆呢?
      如附檔說明
      請知道的前輩,不吝賜教謝謝再三!!
     上班囉!掰掰!!
  1. Sub 增資註解(註解 As String)
  2.     Dim S(), AR(), E As Variant, i As Integer, M As Variant
  3.     With Range("G2")
  4.         .NoteText .NoteText & IIf(.NoteText <> "", Chr(10), "") & 註解
  5.         i = 1
  6.         For Each E In Split(.NoteText, vbLf)
  7.              If E <> "" Then
  8.                  ReDim Preserve S(1 To i)
  9.                  S(i) = E
  10.                  ReDim Preserve AR(1 To i)
  11.                 AR(i) = CDbl(CDate(Split(E, "增資")(0)))
  12.                 i = i + 1
  13.             End If
  14.         Next
  15.         For i = 1 To UBound(AR)
  16.           M = Application.Large(AR, i)
  17.           M = Application.Match(M, AR, 0)
  18.             If i = 1 Then
  19.                 .NoteText ""
  20.                 .NoteText S(M)
  21.             Else
  22.                 .NoteText .NoteText & vbLf & S(M)
  23.             End If
  24.         Next
  25.         .Comment.Shape.TextFrame.AutoSize = True
  26.     End With
  27.     [F2].Select '暫借用
  28. End Sub
複製代碼

LeoV73-1.rar (16.45 KB)

回復 2# GBKEE
良師!
     原程式是將最後寫入的註解放在最上面
     目的是方便日後資料龐大時
     比較容易對帳但
     卻受限 選擇性的 Variant
     要新增到註解中的文字 (不超過 255 個字元)
     實太可惜也就是說無解囉!
     只好將就嚕!謝謝再三!!

TOP

回復 4# GBKEE
良師!!
     雖然註解可以寫入但另一程式 sub 合計 ( )還是受限最多9筆
     如附檔LeoV73-2 與 LeoV73-2A說明
     請再修改sub 合計 ( )辛苦囉!謝謝再三!!
  1. Sub 增資註解(註解 As String)
  2.     With Range("G2")
  3.         If .Comment Is Nothing Then
  4.            .NoteText .NoteText & IIf(.NoteText <> "", Chr(10), "") & 註解
  5.         ElseIf [G2] <> "" Then
  6.            .Comment.Text .Comment.Text & IIf(.Comment.Text <> "", Chr(10), "") & 註解
  7.         End If
  8.         .Comment.Shape.TextFrame.AutoSize = True
  9.     End With
  10. End Sub
  11. Sub 合計()
  12.     [G1] = [G2].FormulaR1C1
  13.     [G1].NumberFormatLocal = """台""""幣"""
  14.     [G2].NumberFormatLocal = "#,##0_ ;[紅色]-#,##0 "
  15.     Dim S As Variant, E As Variant, A As Long
  16.     S = Split([G2].NoteText, vbLf)
  17.     For Each E In S
  18.         E = Replace(Replace(E, "增資", ","), "匯率", ",")
  19.         A = A + Val(Split(E, ",")(1)) * Val(Split(E, ",")(2))
  20.     Next
  21.     [G2] = A
  22.     Application.OnTime Now + TimeValue("00:00:03"), "恢復"
  23. End Sub
複製代碼

LeoV73-2A.rar (17.29 KB)

LeoV73-2.rar (17.71 KB)

TOP

回復 6# GBKEE
良師!! 謝謝!
         不好意思..真的很歹勢啦!!
         小弟疏忽囉!又讓你忙壞
         深感抱歉....!!謝謝再三!!

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題