返回列表 上一主題 發帖

[發問] ByVal Target As Range 用法

byval object =byref object = object的本尊
byval 變數a = 變數a的分身
byref 變數a = 變數a的本尊

TOP

byval 用來保護本尊的
如果本尊資料很重要
不允許被人竄改 ( read  only )
就可以派分身出去拋頭露臉
萬一分身在外地被他人霸凌
甚至被殺死
甚至還死的很慘
本尊依然會完好無缺

TOP

Sub 執行我()
  '用 ByRef 發生 本尊信息 被 鄰居2 竄改事件
  '導致 鄰居3, 鄰居4 收到錯誤信息
  '改成 ByVal 就可以避開被 鄰居2 竄改
  
   msg = "我是陳小美, 星期日晚上6:00 歡迎來我家聚餐"
   發信息給鄰居1 msg
   發信息給鄰居2 msg
   發信息給鄰居3 msg
   發信息給鄰居4 msg
End Sub


Sub 發信息給鄰居1(ByRef msg)
    MsgBox "鄰居 1 收到信息: " + msg
End Sub
Sub 發信息給鄰居2(ByRef msg)
    MsgBox "鄰居 2 收到信息: " + msg
   
    msg = "我是陳小美, 星期日晚上聚餐因為有事緊急取消"            '鄰居2 惡搞信息
End Sub
Sub 發信息給鄰居3(ByRef msg)
    MsgBox "鄰居 3 收到信息: " + msg
End Sub
Sub 發信息給鄰居4(ByRef msg)
    MsgBox "鄰居 4 收到信息: " + msg
End Sub

TOP

about byval  2,3.....
(2) 自轉型態
(3)  至於物件
       物件不需要分身 (  物件自己會處理  )
       物件也不適合有分身 (  效能折扣  )
so  byval object 編譯器傳的還是本尊

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題