查找不同列的范围并插入值

时间:2017-10-04 08:17:29

标签: excel vba excel-vba

我目前面临的挑战是,我有一个数据列表,这些数据已从列A-K中的另一个工作簿中提取,这些数据全部在同一行上完成。我想在列L中标记具有所有相同值的数据

我的代码是试图找到A列中的最后一个单元格和L列中的最后一个单元格。

然后我尝试使用这两行之间的范围在列L中的范围内插入一个值:

    Sub FillTestType(TestType As String)

    Dim rng As Range
    Dim wsh As Worksheet
    Dim Row As Long
    Dim EndCell As Long
    Dim TopCell As Long

      Set wsh = Worksheets("Sheet1")
      wsh.Activate

      EndCell = Cells(Rows.count, "A").End(x1Up).Row
      TopCell = Cells(Rows.count, "L").End(x1Up).Row

      rng = Range(Cells(TopCell, 12), Cells(EndCell, 12)).Value

      rng = TestType

    End Sub

我一直收到运行时错误 - 非常感谢任何帮助!或者,如果我是愚蠢的,有更好的方法来解决这个问题,请告诉我。

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效。主要是整理评论:

  • xlUp而不是x1Up(以及Option Explicit将来自己抓住它!)
  • +1TopCell,以便您不会覆盖该行中的最后一个值
  • 使用RangeCell
  • 完全限定您的With.个参考文件
  • 清理了不必要的变量 - 例如未来多用途或可读性
Option Explicit    

Sub FillTestType(TestType As String)
    Dim EndCell As Long
    Dim TopCell As Long

    With Worksheets("Sheet1")
        EndCell = .Cells(.Rows.Count, "A").End(xlUp).Row
        TopCell = .Cells(.Rows.Count, "L").End(xlUp).Row + 1
        .Range(.Cells(TopCell, 12), .Cells(EndCell, 12)).Value = TestType
    End With
End Sub