我的VBA脚本基本上是从第三方转换我们的公司格式。 到目前为止我做了什么,我转换数据和存储字符串数组。现在我想打开新的excel文件并存储字符串数组。如何使用我的阵列分配新的excel文件?如果有人能帮助我,我真的很感激。
由于
if [ "$userSelection" -ne 1 ] && [ "$userSelection" -ne 2 ] && [ "$userSelection" -ne 3 ]
then
echo "Option selected not valid...please try again."
fi
答案 0 :(得分:0)
以下是我认为你可以做的,在你打开新工作簿的子程序中传递你的数组。
Public Sub Test()
Dim a(10) As Variant
For i = 0 To UBound(arry, 1)
a(i) = i * 2
Next
ParseArray a
End Sub
Public Sub ParseArray(arrValues() As Variant)
Dim wb As Workbook
Set wb = Workbooks.Add
For i = 0 To UBound(arrValues, 1)
ActiveSheet.Cells(i + 1, 1) = arrValues(i)
Next
End Sub
答案 1 :(得分:0)
您可以将整个数组分配到一个范围(它们必须匹配大小),但是一维数组是一行高多列,其中2 + D数组是行相关的。这应该将转置的数组写为1列,而不是数组中的行数
Dim RNG As Range
Set RNG = ActiveWorkSheet.Range("A1")
Set RNG = Destination.Resize(UBound(arrResult), 1)
RNG.Value = Application.Transpose(arrResult)
答案 2 :(得分:0)
下面是一些代码,演示如何创建数组,然后将其分配给新工作簿。您应该能够修改代码以使用此
请注意,创建的数组是2D
然后将此创建的数组传递给第二个Sub
,这将添加一个新的工作簿(基于您的默认模板,尽管您可以更改它)
Option Explicit
Sub CreateTestArray()
Dim myArr() As Variant
Dim I As Long, J As Long
ReDim myArr(1 To 10, 1 To 2)
For I = 1 To 10
For J = 1 To 2
myArr(I, J) = Int((999 - 100 + 1) * Rnd + 100)
Next J
Next I
WriteToNewWB myArr
End Sub
'-------------------------------------
Sub WriteToNewWB(arr)
Dim WB As Workbook
Dim R As Range
Set WB = Workbooks.Add
Set R = WB.Worksheets(1).Cells(1, 1)
Set R = R.Resize(rowsize:=UBound(arr, 1), columnsize:=UBound(arr, 2))
With R
.Value = arr
.EntireColumn.AutoFit
End With
End Sub