excel - 列减法按钮
问题描述
我有一段代码使用 SQL 的 select 语句来生成基于特定日期范围的数据。它工作正常,做我想要的。其中两列是我的问题,即 F 和 H。F 是付款金额,H 是余额。在这种情况下,假设 G 是花费的金额(即支付金额与余额之间的差额)。我想要做的是在查询运行之后,我得到 x 数量的条目,如果我在每一行中按下按钮 F 减去相应的 H 是同一行,结果进入 G 列
Sub Button1_Click()
Range("G11").End(xlDown).Formula = Range("F11").End(xlDown).Value - Range("H11").End(xlDown).Value
End Sub
SQL 开始在第 12 行插入数据,因此我有 G11.End(xlDown)。
基本上我希望的是,如果数据在 F/H 的第 12 行并且是 8,3,并且在第 20 行,就像 13,5,那么第 12 行和第 20 行中的 G 将是 5 和 9
解决方案
您可以将单个公式粘贴到一个范围内,前提是您使用动态、非固定 ($) 表示法编写它,以便它将在整个过程中使用等效的行/列,以便:
dim lr as long
lr = cells(rows.count,"F").end(xlup).row 'finds the last row in column F
range(cells(12,"G"),cells(lr,"G")).formula = "=F12-H12" 'note that the formula destination and the source data start on 12
如果您预见到第 11 行的更改,或者只是想让以后更容易修复,您可以执行以下操作:
dim lr as long, r as long
r = 12 'can change this, or make in inputbox...
lr = cells(rows.count,"F").end(xlup).row 'finds the last row in column F
range(cells(r,"G"),cells(lr,"G")).formula = "=F" & r & "-H" & r
Edit1:将所有 11 更改为 12
Edit2: 将处理工作表问题(仅使用第二个代码,因为将来更容易修改):
With Sheets("Report")
dim lr as long, r as long
r = 12 'can change this, or make in inputbox...
lr = .cells(.rows.count,"F").end(xlup).row 'finds the last row in column F
.range(.cells(r,"G"),.cells(lr,"G")).formula = "=F" & r & "-H" & r
End With
我复制/粘贴了我最初提供的每个代码,并验证了它们在与模块关联时是否有效。
推荐阅读
- jquery - 第一个列表中的所有元素都是可排序的,但只有某些元素可以与第二个列表交换
- ios - podfile 中单个目标的多平台支持
- javascript - async 和 await 支持的 ES 版本?
- visual-studio-2008 - VS 2008 SP1 无法在 MC9200 上部署 Windows CE 7.0
- wordpress - 有没有办法添加自定义 onclick 图标
- php - 在 Symfony3 的多对多关系表中“检查是否存在”的最佳方法是什么?
- sql - 根据每条记录的多列查找重复项
- java - 无法使用 Jexcel API 读取单元格值
- r - 比较 lme 中的 beta 系数
- macos - 在 Mac 上自动重命名下载的文件