【问题标题】:Excel VBA: Selecting right cell when new column was addedExcel VBA:添加新列时选择正确的单元格
【发布时间】:2015-05-05 10:25:15
【问题描述】:

假设在我的 Excel vba 代码中我需要一个单元格的值。我就是这样做的:

Range("A" & row).Value

我的问题是,当我在 Excel 工作表中添加一个新列时,我尝试获取的值现在位于 B 列中(因为我创建了一个新列 A)。

Range("A" & row).Value

我得到空值。我怎样才能自动获得我的正确值,现在在 B 列中?

【问题讨论】:

  • 您可以对列使用标题。或者只是命名列。然后检查标题/列名以确定正确的列
  • 按照你的做法,它总是被设置为"A"。您可以做的是在行中有标题。然后使用一些 VBA 检查标题是否与您要查找的标题匹配并获取该列。然后在range.value 中使用该列
  • 如果您手动更改它,您可以使用Range("A" & row + 1).Value
  • @katz 会补偿新行,但不会补偿新列(作者要求的)
  • @EngJon 你是对的:Range(Columns(1) & row).Value 其中 1 代表 A 列

标签: excel vba


【解决方案1】:

您应该切换到 Range.Cells 属性。

https://msdn.microsoft.com/en-us/library/office/ff196273.aspx

例如:
单元格 A1:C5

Range(Cells(1, 1), Cells(5, 3)) 

您可以使用以下变量来代替数字:

coulVar = 1
Range(Cells(1, 1), Cells(5, coulVar))
coulVar = coulVar + 1
Range(Cells(1, 1), Cells(5, coulVar))

或引用一个单元格:

   Cells(1, coulVar).Value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    相关资源
    最近更新 更多