【问题标题】:VBA code to insert column and formula用于插入列和公式的 VBA 代码
【发布时间】:2018-12-12 03:15:59
【问题描述】:

我有一个需要删除某些列的文件。然后我需要插入一个名为“正值”的列并添加一个公式,以便在这个新列中只提取另一列中的正值。

到目前为止,我已经拼凑了以下代码来删除我不需要的列,但我被困在如何在名为“net”的现有列旁边插入一个新列,然后让该列只显示正面相关单元格中 net 列中的值。

当前代码

Sub ArrayLoop()
  Dim ColumnsToRemove As Variant
  Dim vItem As Variant
  Dim A As Range

  Sheets("sheet 1").Select

  ColumnsToRemove = Array("acronym", "valueusd", "value gbp")
  For Each vItem In ColumnsToRemove
    Set A = Rows(8).Find(What:=vItem, LookIn:=xlValues, lookat:=xlPart)
    Debug.Print vItem, Not A Is Nothing

    If Not A Is Nothing Then A.EntireColumn.Delete
  Next
End Sub

目前我手动插入新列并输入公式 max(E9,0),因此如果另一列中的值大于 0,则新列要么显示 0,要么显示一个值。是否可以将这部分自动化为嗯。

提前致谢。

【问题讨论】:

  • 能否请您回顾一下 Q 的标题和叙述,以决定您是按行还是按列发言?
  • 已经完成了。谢谢

标签: excel vba


【解决方案1】:

对于插入,找到单元格并发出:

If Not A Is Nothing Then A.EntireColumn.Insert

要插入公式,请使用 cell.formula= 和对应的字符串值,例如

Cells(1, A.column - 1).Formula = "=max(" & cells(9, A.column - 2).Address & ",0)" 

注意 A 在插入列时,作为找到值的范围将向右移动,这就是为什么在单元格引用中需要 - 1- 2 的原因。

【讨论】:

  • 谢谢。这使我可以添加我需要的列。使用公式我怎样才能让它循环,以便它适用于每个有值的单元格。目前它将仅适用于顶部单元格,然后停止。我的数据集大约有 6000 行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多