Vba 行和列的交集,包括if-else语句

Vba 行和列的交集,包括if-else语句,vba,excel,Vba,Excel,因此,我正在制作一个用于机械目的的公差计算器。我创建了一个带有指定公差的Excel表格。使用此工作表,Excel需要检查用户输入的列和行,然后返回相交值 现在检查列并不是什么大问题,因为它存在孔号。但是,对于行,Excel需要检查值是否在B和C之间,并使用该行与相交 我的问题是,是否可以使用普通Excel公式,还是必须创建宏?有人知道解决办法吗 提前谢谢 您需要使用工作表更改事件,以查看用户何时进行了更改。下面的代码将让您开始,并给出总体思路,它需要进入相关的工作表模块,即VB编辑器中的“Sh

因此,我正在制作一个用于机械目的的公差计算器。我创建了一个带有指定公差的Excel表格。使用此工作表,Excel需要检查用户输入的列和行,然后返回相交值

现在检查列并不是什么大问题,因为它存在孔号。但是,对于行,Excel需要检查值是否在B和C之间,并使用该行与相交

我的问题是,是否可以使用普通Excel公式,还是必须创建宏?有人知道解决办法吗


提前谢谢

您需要使用工作表更改事件,以查看用户何时进行了更改。下面的代码将让您开始,并给出总体思路,它需要进入相关的工作表模块,即VB编辑器中的“Sheet1”:

Private Sub Worksheet_Change(ByVal Target As Range)
    Debug.Print "Value: " & Target.Value
    Debug.Print "Row: " & Target.Row
    Debug.Print "Col: " & Target.Column
    Debug.Print "Col Header y: " & Cells(Target.Row, 1).Value
    Debug.Print "Row Header x: " & Cells(1, Target.Row).Value
End Sub

您需要使用这些值来确定用户值是否正确。您需要更新带有标题的行和列的值1。然后,您可以使用简单的运算符比较它们

您可以根据a、b或c选择D:E、F:H或I:K列

=INDEX(CHOOSE(MATCH(B2, {"a","b","c"}, 0), D6:E9, F6:H9, I6:K9), MATCH(A2, B6:B9, 1), MATCH(C2, CHOOSE(MATCH(B2, {"a","b","c"}, 0), D5:E5, F5:H5, I5:K5), 1))


C列中的终止标称尺寸完全不相关。

当输入值介于1和3之间时,如何确定是否返回第1行或第2行?@C.Krepel用户将在哪里输入值?正如雅各布所说,你如何确定第1行或第2行或第3行或第4行?你能详细说明这个过程吗,这样我们才能更好地帮助你?还试过什么?您是否尝试过任何东西、代码、公式等……如果将列标题组合在一起:
A-9
A-11
,。。。然后,一个简单的索引,MATCH,MATCH将在公式中完成。感谢您的评论。用户将在另一张表中输入其值,然后将其传递到公差表并返回相交值@我会试试你的方法。尽管用户也可以输入十进制值。有解决办法吗?我会试试你的方法。谢谢你的努力@C.Krepel任何时候,试着编写代码来更适合你的情况,如果代码不起作用,回来问问题。幸运的是,这一个可能在没有任何宏的情况下解决问题。我会让你知道它是否有效!