Excel中的跨产品VBA
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel中的跨产品VBA相关的知识,希望对你有一定的参考价值。
似乎由于某些原因,Excel程序员选择省略任何矢量交叉产品功能。
此外,在网上看,对它的需求并不大。虽然excel是一个强大的线性代数工具。
我需要一个VBA脚本来做矢量交叉产品。我能找到的唯一一个就是从这里来的:
编辑:
- 要添加VBA脚本,请按Alt + F11
- 在Project下,右键单击VBAProject和Insert-> Module
- 单击“保存”,单击“否”以另存为启用宏的工作簿
- 另存为.xlsm文件
--------------------
Function vCP(v1 As Variant, v2 As Variant) As Variant
vCP = 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
--------------------
使用它很简单,
- 选择3个水平相邻单元格,输入公式
=vCP(
- 选择矢量A(在A x B中),它位于3个连续的水平或垂直单元格中
- 键入
,
- 选择矢量B,它是垂直单元的3个连续水平
- 键入
)
- 按Ctrl + Shift + Enter
我对它进行了几次测试,它可以工作,但它输出的是水平向量,而不是垂直向量,这是线性代数的首选方式。
有谁知道如何更改此脚本,以便可以垂直输出3D矢量?
有没有更好的方法在Excel中获得跨产品?
感谢:D
答案
使用Application.Transpose:
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
以上是关于Excel中的跨产品VBA的主要内容,如果未能解决你的问题,请参考以下文章
根据 Excel VBA 中的 ComboBox 显示/隐藏 WBS 项目
在 Excel 中运行 VBA 代码以获取 Access 数据库中的 VBA