gpt4 book ai didi

arrays - 使用 VBA 将值插入 Excel 表格的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-02 05:57:47 27 4
gpt4 key购买 nike

我需要能够使用 VBA 代码将大量值插入到 Excel 中的空表中。以下是到目前为止代码的工作原理。

首先,用户将值输入到用户表单中。然后,代码会清除表格,然后根据代码中已有的查找条件查找一系列数字。检索到的数据全部包含在单个列中并像数组一样存储。

从这里开始,我需要将所有值放入表中的特定列(策略#)中,从而将表行扩展为检索到的数据集中的行数。 (如果需要的话,我确实已经将计数单独存储为“AC”)我想要插入的列标题是“Policy #”。

请记住,当前代码中表格中只有一个空白行,如何正确插入数据?我已经尝试过

 range("commissionstatement[Policy #]").value = Als

但这不起作用。顺便说一句,Als 是值数组。通常要插入数组,我必须插入到大小相等的范围中,这就是为什么我已经将行数设为 AC 的原因。

我也尝试过使用 range("commissionstatement").listobject.listrows 但这也不起作用。

有什么建议吗?在我像这样实际将数据放入其中之前,我是否需要在表中插入等于我添加的数据数量的行...

range("commissionstatement").listobject.listrows.add ()

接着插入数据?

如果需要更多信息,请告诉我。谢谢!

最佳答案

假设您使用的是 Excel 2010,请尝试此操作(可能不适用于早期版本的 Excel)

Sub AddToList()
Dim lo As ListObject
Dim ws As Worksheet
Dim Als() As Variant
Dim rng As Range

Set ws = ActiveSheet

' Get reference to table
Set lo = ws.ListObjects("MyTable") ' <--- Update this with your table name

If lo.InsertRowRange Is Nothing Then
' List already has data
Set rng = lo.ListRows.Add.Range
Else
' List is empty
Set rng = lo.InsertRowRange
End If

' *** Remove one of these two lines ***
' If Als is a 1 dimensional array
rng.Cells(1, lo.ListColumns("Policy #").Index).Resize(UBound(Als) - LBound(Als) + 1, 1) = Application.Transpose(Als)

' If Als is 2 dimensional array (1 to rows, 1 to 1)
rng.Cells(1, lo.ListColumns("Policy #").Index).Resize(UBound(Als, 1), 1) = Als
End Sub

关于arrays - 使用 VBA 将值插入 Excel 表格的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12081624/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com