我是这个论坛的新手,非常感谢您对我遇到麻烦的Excel表格的帮助。
我需要为以下内容创建一个VBA代码:
我需要根据Column H3
中列出的以下公式和值,在Column G
中计算出该条款。 Column F
是值可能包含空行的列,因为我是新的,我无法发布实际工作表的图片:
=IF(F3=0;(G3*(G5-F5)/G5);IF(F3>0;(G5-F5)))
问题是Column F
根据特定客户有多少发票而有空格,我需要的是一些公式或VBA代码,它们考虑了空白值。
任何帮助将不胜感激
修改1:示例数据
编辑2:代码我目前有
Sub Check()
Dim rng1 As Range
Dim cell As Range
Dim i As Long
Set rng1 = Range("F3:F100")
For Each cell In rng1
If cell.Value > 0 Then
cell.Offset(0, 5).Value = cell.Offset(0, 1) - cell.Offset(0, 0)
ElseIf cell.Value = 0 Then
cell.Offset(0, 5).Value = ???????
End If
Next
End Sub
在此我添加了其他内容:
Sub Check()
Dim rng1 As Range
Dim cell As Range
Dim i As Long
Set rng1 = Range("F3:F100")
For Each cell In rng1
If cell.Value > 0 Then
cell.Offset(0, 5).Value = cell.Offset(0, 1) - cell.Offset(0, 0)
ElseIf cell.Value = 0 Then
cell.Offset(0, 5).Value = `(cell.Offset(0, 1) * ((cell.Offset(2, 1) - cell.Offset(2, 0)) / cell.Offset(2, 1)))`
End If
Next
End Sub
&#34>中显示的问题"上面没有给我正确的比率
答案 0 :(得分:1)
这是我认为最好的非VBA解决方案 我把你的数据减少到一半,我得到了懒惰的打字,如下所示:
如您所见,我在H3
中添加了一个基于您公式的公式。
=IF(F3<>"",G3-F3,G3*(INDIRECT("G$"&I3)-INDIRECT("F$"&I3))/INDIRECT("G$"&I3))
不同之处在于我使用INDIRECT
动态控制F
和G
中的参考值。
基本上,F
和G
引用取决于I
上的值。
我在I3
中使用了这个公式来得到正确的行引用,分别是5,8和17。
=SMALL(IF(F3:F$17<>"",ROW(F3:F$17)),ROW(A$1))
上面是使用 Ctrl + Shift + 输入输入的Array Formula
。
输入正确后,它将如下所示:
正如我所说,我刚刚使用了部分数据。您可以调整范围大小以满足您的需求。
您可以将其转换为模板,只需复制和粘贴值即可。希望这对你有所帮助
我不是说VBA
不是一个选项,但这是我能用ATM最快的。:)