Excel中交叉积的VBA

Excel中交叉积的VBA,excel,vector,cross-product,Excel,Vector,Cross Product,似乎出于某种原因,Excel程序员选择省略任何向量叉积功能 此外,从网上看,对它的需求并不多。尽管excel是一个强大的线性代数工具 我需要一个VBA脚本来做向量叉积。我唯一能找到的就是从这里: 编辑: 要添加VBA脚本,请按Alt+F11 在“项目”下,右键单击VBA项目并插入->模块 保存,单击“否”保存为启用宏的工作簿 另存为.xlsm文件 使用它很简单 选择3个水平相邻单元格,键入公式 =vCP( 选择位于3个连续水平或垂直单元格中的向量A(在A x B中) 键入, 选择向量B,它是3

似乎出于某种原因,Excel程序员选择省略任何向量叉积功能

此外,从网上看,对它的需求并不多。尽管excel是一个强大的线性代数工具

我需要一个VBA脚本来做向量叉积。我唯一能找到的就是从这里:

编辑:

  • 要添加VBA脚本,请按Alt+F11
  • 在“项目”下,右键单击VBA项目并插入->模块
  • 保存,单击“否”保存为启用宏的工作簿
  • 另存为.xlsm文件
  • 使用它很简单

  • 选择3个水平相邻单元格,键入公式
  • =vCP(
  • 选择位于3个连续水平或垂直单元格中的向量A(在A x B中)
  • 键入
  • 选择向量B,它是3个连续的水平单元格或垂直单元格
  • 键入
  • 按Ctrl+Shift+Enter键
  • 我对它做了几次测试,它工作了,但它输出的是水平向量,而不是垂直向量,这是线性代数的首选方式

    有人知道如何更改此脚本,以便可以垂直输出3D向量吗

    有没有更好的方法在Excel中获取交叉积

    谢谢,
    -使用应用程序。转置:

    Function vCP(v1 As Variant, v2 As Variant) As Variant
    
    vCP = Application.Transpose(Array(v1(2) * v2(3) - v1(3) * v2(2), _
    v1(3) * v2(1) - v1(1) * v2(3), _
    v1(1) * v2(2) - v1(2) * v2(1)))
    End Function
    

    我试图使用上面的代码生成转置,函数名为vCP2,但生成了一个REF#!错误


    经过多次试验,我意识到原始函数vCP(保留在模块中)和转置版本vCP2之间存在名称冲突。我最终通过重新命名转置版本CPv解决了这个问题。我不明白名称冲突是如何产生的。

    谢谢,我在你发布它的第二天就找到了这个答案:)我想VB读起来仍然像是piglin to me7k视图,没有投票权。由于microsoft仍未能在excel中包含跨产品功能,请进行投票
    Function vCP(v1 As Variant, v2 As Variant) As Variant
    
    vCP = Application.Transpose(Array(v1(2) * v2(3) - v1(3) * v2(2), _
    v1(3) * v2(1) - v1(1) * v2(3), _
    v1(1) * v2(2) - v1(2) * v2(1)))
    End Function