返回列表 上一主題 發帖

[發問] 如何得知插入複製儲存格的行數?

[發問] 如何得知插入複製儲存格的行數?

Hello, 各位大大

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

      Private Sub Worksheet_Change(ByVal Target As Range)

                   MsgBox Target.Rows

      End Sub

Thanks ~
新手上路,請多包涵。

Target.Rows.count
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

Hello, ML089大

    了解! 謝謝您的回覆.
新手上路,請多包涵。

TOP

回復 2# ML089


    Hello, ML089大

今日發現插入與刪除的Rows.count都是5, 系統要如何分辨User是在做插入, 還是刪除的動作呢?
Thanks ~
新手上路,請多包涵。

TOP

回復 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
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 5# ML089
Hello, 大大

            謝謝您的回覆, 我再研究一下您的程式.
新手上路,請多包涵。

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題