热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

电池的可变类型

我尝试过DimCellAAsLong,AsInteger和AsRange来尝试保

我尝试过Dim CellA As LongAs IntegerAs Range来尝试保存单元格的地址。在此示例中,(使用Range)我得到了


  

运行时错误91对象变量或未设置块变量

第4行:CellA = Cells(activeCell.Row - 1,1)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ColA As String
Dim ColB As String
Dim CellA As Range
CellA = Cells(activeCell.Row - 1,1)
If (Len(Cells(activeCell.Row - 1,1) > 0)) Then
ColA = CleanCode(Cells(activeCell.Row - 1,1))
ColB = CleanCode(Cells(activeCell.Row - 1,2))
If (ColA <> ColB) Then
MsgBox (Cells(activeCell.Row - 1,2))
Range(Cells(activeCell.Row - 1,1)).Select
End If
End If
End Sub

我想将我所有的Cells(activeCell.Row...)引用替换为变量引用,包括我的范围选择(显然,它不起作用)。

FYI::当我在列A单元格中键入的内容与该列B单元格不匹配时,此例程将生成一个消息框,其中包含(隐藏的)列B单元格的内容。我写它的目的是帮助我记住我的视频头像。


因为CellA是对象,所以不能这样做

CellA = Cells(ActiveCell.Row - 1,1)

您必须像这样使用Set关键字

Set CellA = Cells(ActiveCell.Row - 1,1)

,

范围是对象。您需要使用关键字Set进行对象分配。

Set CellA = Cells(ActiveCell.Row - 1,1)



  • CellA从未使用

  • 这些多余的括号(Len(Cells(ActiveCell.Row - 1,1) > 0))太混乱了。

  • 避免使用这样的括号:MsgBox (Cells(ActiveCell.Row - 1,2))可能会导致问题。

  • Range(Cells(ActiveCell.Row - 1,1))替换为ActiveCell.Offset(-1,2)ActiveCell(-1,2)

    私有子工作表_更改(按目标的ByVal目标)
        昏暗的ColA作为字符串
        昏暗的ColB作为字符串
        昏暗的CellA作为范围
        昏暗的CellB作为范围

    Set CellA = ActiveCell.Offset(-1,1)
    Set CellB = ActiveCell.Offset(-1,2)
    If Len(CellA.Value) > 0 Then
    ColA = CleanCode(CellA)
    ColB = CleanCode(CellB)
    If (ColA <> ColB) Then
    MsgBox CellB
    ColA.Select
    End If
    End If

    结束子



推荐阅读
author-avatar
葛妹秀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有