为什么我的代码没有填满?

时间:2013-03-18 15:39:38

标签: excel vba excel-vba

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,但它不是工作,并没有向我提供错误信息,任何想法?

2 个答案:

答案 0 :(得分:0)

尝试更改以下内容:

SLR= Activecell.Address 

Set SLR = Activecell

并为ELR做同样的事情:

Set ELR = Activecell

答案 1 :(得分:0)

On Error Resume Next总是一个坏主意。如果我是世界之王,我会将此命令设为非法,错误处理程序应该是在发生意外事件而导​​致代码崩溃时。

宏的最重要的事情是用户在其结尾处获得的数据是正确的。如果这意味着当代码崩溃并且用户打电话给你时,那就是它需要什么。但是,On Error Resume Next意味着没有人会知道你的代码是否已经崩溃,并且没有人会知道数据是错误的。

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

至于这段代码,如果你删除On Error Resume Next,你将会更多地了解你的问题。