我有一个MATLAB代码创建了一个大单元格数组,我使用VBA的MLGetVar函数进入Excel。 MATLAB代码还为我提供了标题/标题行的列表。我希望能够获取MATLAB中生成的行列表,并使用它们在Excel中指定行,以便我可以更改整行的格式(例如,更改为标题2)。
我已经尝试了几种方法将MATLAB值转换为VBA但是没有取得任何成功:
在MATLAB中,我有一系列数字:example = [12,24,60]
我正在尝试取这些数字并使用它们来指定VBA范围:
MLGetVar "example", VBAVariable
Dim variable As String
Let variable = VBAVariable & ":" & VBAVariable
Range(Var).Select
然后我可以使用选择来做我需要的任何事情,不幸的是我得到了类型不匹配。
我也尝试在MATLAB中格式化值,所以我会:example = ' "12:12, 24:24, 60:60" '
然后我使用MLGetVar
尝试使用Range()
进行选择,但这也会导致类型不匹配。
我知道我需要使用For循环来遍历列表,目前我只测试一个变量,所以我知道如何实现我的代码。
希望这个问题不是太基础,我今天才开始尝试使用VBA。
谢谢!
答案 0 :(得分:0)
MLGetVar将获取Matlab变量并将其存储在VBA中的Variant类型数组中。要访问元素,您必须使用以下代码对其进行索引:
example(1,1)
或使用For循环遍历数组。
Range函数使用一个字符串来指定范围,因此您可以遍历数组并使用它来构建描述所需范围的字符串。
以下是您所描述内容的示例:
Sub test()
Dim vec As Variant
Dim r As String
MLGetVar "example", vec
r = ""
For Each Row In vec
r = r & Row & ":" & Row & ","
Next
Range(Left(r, Len(r) - 1)).Select
End Sub
请注意,变量示例必须存在于matlab工作空间中,如问题所述:example = [12,24,60]