excel - VBA在列中的单元格中插入公式以在满足多个IF AND条件时进行计算
问题描述
我坚持编写 VBA 代码,该代码将使我能够在 V 列中插入以下公式(从 V2 开始到最后一行,因为它是一个动态范围)如果在同一张表的其他列中满足 3 个 AND 条件。我尝试使用宏并插入它要求的公式 R1C1,但它给了我一个语法错误。另外,我宁愿使用 VBA 代码,因为它将在具有多个工作表的非常大的数据库上运行,并且范围会随时间变化. 但是,所有格式、标题名称和列号将始终保持不变。
所以我的条件是:
如果 M 列中的单元格有值,且 N 列不等于 5,且 T 列为空,则在该行的 V 列中插入此公式:
G 列 * (0.19) 此外,如果满足相同条件,请在 X 列中插入此公式:
V列/ Y列以及O列中的这个公式:
列 M/列 X 如果不满足 3 个条件中的任何一个,则不执行任何操作并移至下一行并继续
对工作表“CABC”和工作表“CXYZ”中的每一行执行此操作(每个工作表的行数更改,因此我需要最后一行计数)此外,有时在新工作簿中,这些工作表中的一个或两个不会存在所以如果找不到工作表,我需要一个错误处理程序继续前进。
我会给出我的代码,但是我真的没有,因为我在这里或在 youtube 上找到的代码都没有为我工作:(
这是适用于我的列 V 的 IF AND 公式,但是当我将其插入 VBA 时,它不起作用(不能作为 .range.formula 或来自录制的宏的 .range.formulaR1C1 )公式:
"=IF(AND(M2>0,NOT(N2=5),T2=""),(G2*(0.07/(1+(0.05+0.07)))),"")"
太感谢了!!
解决方案
在处理大量数据时,使用公式来保持速度会变慢。将数据用作值是很好的。请注意,如果应用了任何公式,以下内容将替换为值。这仅适用于第 v 列,因此该列的其余部分不清楚,因此请申请。
Sub test()
Dim vDB As Variant, rngDB As Range
Dim Ws As Worksheet
Dim i As Long
Set Ws = Sheets(1) '<~~ set your sheet name ; Sheets("CABC")
Set rngDB = Ws.UsedRange
vDB = rngDB
For i = 2 To UBound(vDB, 1)
'This apply to V column
If vDB(i, 13) > 0 And vDB(i, 14) <> 5 And vDB(i, 20) = "" Then
'vDB(i,22) is V Column
vDB(i, 22) = vDB(i, 7) * (0.07 / (1 + (0.05 + 0.07)))
Else
vDB(i, 22) = ""
End If
Next i
rngDB = vDB
End Sub
工作表图像
这是添加的代码。
Sub test()
Dim vDB As Variant, rngDB As Range
Dim Ws As Worksheet
Dim i As Long
Set Ws = Sheets(1) '<~~ set your sheet name ; Sheets("CABC")
Set rngDB = Ws.UsedRange
vDB = rngDB
For i = 2 To UBound(vDB, 1)
'This apply to V column
If vDB(i, 13) > 0 And vDB(i, 14) <> 5 And vDB(i, 20) = "" Then
'vDB(i,22) is V Column
vDB(i, 22) = vDB(i, 7) * (0.07 / (1 + (0.05 + 0.07))) 'column V
vDB(i, 24) = vDB(i, 7) * 0.19 'column X
vDB(i, 15) = vDB(i, 22) / vDB(i, 24) 'column O
Else
vDB(i, 22) = ""
End If
Next i
rngDB = vDB
End Sub
推荐阅读
- python - Azure Python 函数重试限制在逻辑应用中不起作用
- ios - Tableview 单元格在向下滚动时消失,除了每个部分的最后一个单元格变成灰色
- python - 如何将 plt.yscale('log') 用于 0 到 1 之间的特定值?
- python - 如何在 Python 中修复超出范围的字符串索引
- javascript - 如何找出两个给定日期之间的百分比?
- swiftui - SwiftUI - 带有嵌套 NavigationViews 的 TabView 重置 Navigationflow
- javascript - Symfony NucleosAntiSpamBundle
- powershell - 将项目从一个文件夹移动到另一个但在另一个子目录中
- javascript - 不允许请求资源(获取错误)
- redhat - 无法解析 RHDM 7.9.0 导入的数据对象