0
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,但是它不起作用并且没有向我提供错误消息,有什么想法吗?

4

2 回答 2

0

尝试更改以下内容:

SLR= Activecell.Address 

进入

Set SLR = Activecell

并为 ELR 做同样的事情:

Set ELR = Activecell
于 2013-03-18T15:52:35.757 回答
0

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

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

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

至于这段代码,如果您删除 On Error Resume Next,您将了解更多有关您的问题的信息。

于 2013-03-20T15:17:26.357 回答