【问题标题】:Adding characters to a cell and autofilling the column in VBA将字符添加到单元格并在 VBA 中自动填充列
【发布时间】:2017-10-20 18:14:26
【问题描述】:

我想在 A 列中的值中添加几个字符,然后让它自动填充其余具有值的行。我尝试了在其他线程中找到的几种代码变体,并得到了相同的结果:运行时错误 1004:方法范围对象 _global 失败。

这是我尝试过的代码:

Range("B1:B" & LastRow).Formula = "=CHAR(34)&A1&CHAR(34)&CHAR(44)"

Range("B1") = "=CHAR(34)&A1&CHAR(34)&CHAR(44)": Range("B1:B" & LastRow).FillDown

【问题讨论】:

  • 第一个对我有用,问题必须存在于代码中的其他地方。请发布更多您的代码,尤其是在您声明并赋值给LastRow的地方
  • 试试Range("B1:B" & LastRow).FormulaR1C1 = "=CHAR(34)&RC[-1]&CHAR(34)&CHAR(44)" 但我怀疑LastRow 也可能是问题,或者您没有明确说明Range 的父级的事实
  • 请发布您尝试创建的实际单元格公式
  • 您的代码的哪一行导致了错误?
  • 我正在编写此线程的代码:stackoverflow.com/questions/25788750/… 我正在运行它的单元格是 b1 中的空白单元格。并且列 a 将包含可变数量的数据行。通过不说明父级,您的意思是添加 Worksheets("Sheet1").Range("B1:B" & LastRow).Formula = "=CHAR(34)&A1&CHAR(34)&CHAR(44)"

标签: vba excel


【解决方案1】:

Run time error 1004: Method range object _global failed 将被 LastRow 的值 LastRow 变量。

With Worksheets("Sheet1")
    .Range("B1", .Range("B" & .Rows.Count).End(xlUp)).Formula = "=CHAR(34)&A1&CHAR(34)&CHAR(44)"
End With

@mooseman 提出了一个很好的观点。

如果您需要根据另一列的最后一行获取单元格,则可以使用Range.Offset([col],[row])

With Worksheets("Sheet1")
    .Range("A1", .Range("A" & .Rows.Count).End(xlUp)).Offset(0, 1).Formula = "=CHAR(34)&A1&CHAR(34)&CHAR(44)"
End With

此方法可确保您选择正确的列。

With Worksheets("Sheet1")
    With .Range("A1", .Range("A" & .Rows.Count).End(xlUp))
       .EntireRow.Columns("B").Formula = "=CHAR(34)&A1&CHAR(34)&CHAR(44)"
    End With
End With

【讨论】:

  • 除非您需要获取特定列中的最后一行,否则这可能不是工作表的最后一行。
  • @mooseman 好点子。特别是考虑到 OP 显然针对的是不同的列。谢谢
猜你喜欢
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-20
  • 1970-01-01
相关资源
最近更新 更多