簡體   English   中英

為什么我的代碼沒有填寫?

[英]Why isn't my code filling down?

Dim SLR As Range
Dim ELR As Range

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
On Error Resume Next


Select Case UCase(Target.Value)

Case "START-LOCATION"
    Target.Offset(0, 0).Select
    Selection.ClearContents
    SLR = ActiveCell.Address
    Target.Offset(-1, 1).Select



Case "END-LOCATION"
    Target.Offset(0, 0).Select
    Selection.ClearContents
    ELR = ActiveCell.Address
    Target.Offset(0, -1).Select
    ActiveSheet.Range(SLR, ELR).FillDown

End Select
End Sub

大家好,我有上面的代碼,應該在第一個單元格的開始位置設置變量,在結束位置上它設置第二個變量,然后將單元格從SLR填充到ELR,但是它不起作用並沒有向我提供錯誤消息,有什么想法嗎?

嘗試更改以下內容:

SLR= Activecell.Address 

進入

Set SLR = Activecell

並對ELR執行相同操作:

Set ELR = Activecell

關於錯誤恢復,下一步總是一個壞主意。 如果我是世界之王,那么我將使該命令成為非法,那么錯誤處理程序應適用於發生意外情況並使您的代碼崩潰的情況。

宏最重要的是,用戶在其末尾獲得的數據是正確的。 如果那意味着當代碼崩潰並且用戶致電給您,那么就是這樣。 但是擁有On Error Resume Next意味着沒人會知道您的代碼是否崩潰了,也沒人會知道數據是錯誤的。

永遠不要使用On Error Resume Next !!!!!

至於這段代碼,如果您刪除On Error Resume Next,您將了解有關您的問題的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM