返回列表 上一主題 發帖

Excel VBA如何檢查_含有註解格數量

本帖最後由 n7822123 於 2020-8-10 22:26 編輯

回復 4# Andy2483

1.測試結果跟想要的結果不一樣,Andy沒有表達清楚!抱歉

他回了重點寫法,但是沒有套用到你要的功能

這個論壇有些人只回"重點",你要能適應,並且要能看懂別人的寫法

我是比較囉嗦的人(耐心打字),其他人可不一定;P



2.如果您有空 請再指導 標註一下程式碼的意思 謝謝您

有上註解了,看不懂再問!


3.上傳範例檔表達情境,請前輩們再指導

結合ikboy 與 你原本的程式 給你

程式如下


Sub 檢查_含有註解格數量_New()
Dim hascomN&, msg1$, msg2$, L&, T&, hascomERRN&
Dim uR As Range, com As Comment
msg1 = "1.有註解儲存格格位: "
For Each com In ActiveSheet.Comments   '此活工作表 註解'集合'
  With com  '針對所有註解
    hascomN = hascomN + 1  '計算
    msg1 = msg1 & .Parent.Address  '對應的儲存格位置
    Set uR = Range(.Parent.Address)  '指定該儲存格物件
    L = .Shape.Left - (uR.Left + uR.Width + 200)  '你原本的規則
    T = .Shape.Top - (uR.Top + 50)                         '你原本的規則
    If L > 0 Or T > 0 Then hascomERRN = hascomERRN + 1  '累加不合規則的註解數
  End With
Next
If hascomN > 20 Then msg1 = "1.含有註解格太多!不顯示格位"     '你原本的規則
msg2 = "2.註解實際位置跑掉的格:" & hascomERRN & " 個"
If hascomERRN = 0 Then msg2 = "2.沒有註解實際位置跑掉的格"  '你原本的規則
MsgBox msg1 & Chr(10) & msg2
End Sub

Sub 註解_調整至指定位置_New()
Dim com As Comment, SetLeft&, SetTop&
Const L = 20: Const T = 20   '你原本的規則
For Each com In ActiveSheet.Comments  '此活工作表 註解'集合'
  With com   '針對所有註解
    With Range(.Parent.Address)     '指定該儲存格物件
      SetLeft = .Left + .Width + L   '你原本的規則
      SetTop = .Top + T                   '你原本的規則
    End With
    With .Shape: .Left = SetLeft: .Top = SetTop: End With  '設定註解位置
  End With
Next
Application.DisplayCommentIndicator = 1   '顯示註解和指標
End Sub


修改你的範例檔 如下

20200810_new.rar (22.59 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 4# Andy2483


補充一下,你的寫法是用儲存格找註解

ikboy 是用 註解找儲存格
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

        靜思自在 : 有時當思無時苦,好天要積雨來糧。
返回列表 上一主題