gpt4 book ai didi

arrays - VBA使用数组中的值创建Excel图表

转载 作者:行者123 更新时间:2023-12-04 21:56:24 29 4
gpt4 key购买 nike

我在二维数组中有一些数据,我需要使用 excel 图表创建图表。但是,图表 setsourcedata 似乎只接受范围。这意味着我必须将数组存储在某个电子表格的某个范围内,然后将该范围作为输入传递给图表。所以我创建了一个临时表来将数据存储在特定范围内,然后计划将其传递给创建图表调用。这是我创建的一个类型

Private Type CItem

CName As Variant
CWeek(13) As Variant
CDisabled(13) As Variant
CEmpty(13) As Variant
CEnabled(13) As Variant

End Type

Dim CItemArray(100) As CItem
cnt1 = 0

//.. do something

ActiveWorkbook.Sheets.Add(After:=Sheets("MainSheet")).Name = "WK_Report"

Worksheets("WK_Report").Range("C3:C15").value = CItemArray(cnt1).CWeek()
Worksheets("WK_Report").Range("D3:D15").value = CItemArray(cnt1).CDisabled()
Worksheets("WK_Report").Range("E3:E15").value = CItemArray(cnt1).CEnabled()
Worksheets("WK_Report").Range("F3:F15").value = CItemArray(cnt1).CEmpty()

我的目标是将第一个 CItem 的整个 CWeek 数组分别分配给 C3:C15 的范围。但是,我上面使用的语法将 Cweek、CDisabled、CEnabled、CEmpty 的第一个元素分配给整个范围。我在 CWeek 和其他人之后尝试不带括号,但结果是一样的。

如何将数组值分配给范围?我知道这些值在数组中,因为我在分配验证后做了一个 debug.print。

最佳答案

您可以使用 Application.Transpose : 这是一个简化的例子

Option Explicit

Private Type CItem
CWeek(13) As Variant
End Type

Sub Tester()

Dim itm As CItem, x As Long

For x = 1 To 14
itm.CWeek(x - 1) = x
Next x

ActiveSheet.Range("C3:C15").Value = itm.CWeek '>> all "1"

ActiveSheet.Range("D3:D15").Value = Application.Transpose(itm.CWeek) '>> 1 to 13

End Sub

关于arrays - VBA使用数组中的值创建Excel图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43904254/

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