Board logo

標題: [發問] 如何得知插入複製儲存格的行數? [打印本頁]

作者: 劉大胃    時間: 2021-9-17 15:10     標題: 如何得知插入複製儲存格的行數?

Hello, 各位大大

       假設使用者在SheetB複製了一些行數(EX:2~6Rows),
       並在SheetA的第3行做插入複製儲存格的動作.
       請問, 系統要如何偵測使用者插入的行數是多少?
  
       Rows指令無法偵測出來.

      Private Sub Worksheet_Change(ByVal Target As Range)

                   MsgBox Target.Rows

      End Sub

Thanks ~
作者: ML089    時間: 2021-9-17 16:37

Target.Rows.count
作者: 劉大胃    時間: 2021-9-17 16:43

Hello, ML089大

    了解! 謝謝您的回覆.
作者: 劉大胃    時間: 2021-9-22 17:29

回復 2# ML089


    Hello, ML089大

今日發現插入與刪除的Rows.count都是5, 系統要如何分辨User是在做插入, 還是刪除的動作呢?
Thanks ~
作者: ML089    時間: 2021-9-23 16:02

回復 4# 劉大胃

不知道VBA裡有無此功能函數

自行於工作表裡定義,可能不是很完善,先將就用看看
Public rTmp As Range, sTmpAdr As String

Private Sub Worksheet_Change(ByVal Target As Range)
    Debug.Print Target.Address, "Worksheet_Change"
   
    '刪除時 rTmp 物件會不見造成錯誤
    On Error Resume Next
    rTmpAdr = "無": rTmpAdr = rTmp.Address
    On Error GoTo 0
   
    Debug.Print rTmpAdr, "rTmpAdr"
    Debug.Print sTmpAdr, "sTmpAdr"
   
    If rTmpAdr = "無" Then
        Debug.Print "刪除 " & sTmpAdr
    ElseIf rTmpAdr <> sTmpAdr Then
        Debug.Print "插入 " & sTmpAdr
    ElseIf rTmpAdr = sTmpAdr Then
        Debug.Print "修改 " & sTmpAdr
    Else
        Debug.Print "其他 " & sTmpAdr
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Debug.Print Target.Address, "Worksheet_SelectionChange"
    Set rTmp = Target: sTmpAdr = rTmp.Address
End Sub
作者: 劉大胃    時間: 2021-9-24 13:15

回復 5# ML089
Hello, 大大

            謝謝您的回覆, 我再研究一下您的程式.




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