vba - 将字符串填充到不同的单元格

标签 vba excel

我想用数组填充一系列单元格,但我做不到。

1)

Dim Principal() As String
Dim txt As String

For i = LBound(Principal) To UBound(Principal)
    txt = txt & Principal(i)  & vbCrLf
Next i
MsgBox txt

2)
Dim Principal() As String
Dim txt As String

For i = LBound(Principal) To UBound(Principal)
    Worksheets("Sheet1").Cells(i, 3) = Principal(i)
Next i

我可以在第一个示例中看到输出,即 MsgBox,但是当我尝试存储到不同的单元格时出现错误。提前致谢。

最佳答案

Alex 和 Sorceri 已经指出,默认情况下,数组从索引 0 开始。但除此之外,您不需要循环将数组传递给范围。

' 1D Array
With Worksheets("Sheet1")
    .Range("C1:C" & Ubound(Principal) + 1) = Application.Transpose(Principal)
End With

注意 + 1 .如果 Option Base = 1那么你将不得不删除它。
另请注意,如果您将一维数组传递给范围,则需要 Transpose数组。

关于vba - 将字符串填充到不同的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30086301/

相关文章:

excel - 如何修改此代码以仅搜索可见的行和列

excel - 选择文件夹路径 - 不读取所选文件夹中的文件

excel - 在 Excel 中编写逻辑问题

excel - 调用单个单元格而不是范围

xml - 将非规范化数据从 excel 导出到 xml

ms-access - 使用表单更新列表框中的查询对象。 (MS-Access)

vba - 引用列号的求和函数 VBA

java - 如何使用Java在Excel中输入无效的公式

excel - 用平均值替换多个工作表中的空白的代码

Excel VBA 将值添加到与特定标题匹配的整个列