是否可以使用数组作为 Sparkline.Sourcedata 和 VBA 的输入?
Is it possible to use an array as input of Sparkline.Sourcedata with VBA?
我想使用数组而不是范围作为迷你图的数据输入。
而不是这个:
Range("F2").SparklineGroups.Add Type:=xlSparkColumn, SourceData:="A2:E2"
像这样:
Range("F2").SparklineGroups.Add Type:=xlSparkColumn, SourceData:=Array(1,2,3,4)
Is it possible to use an array as input of SparkLine SourceData with VBA?
没有. - 由于help
所需的 SourceData
字符串 “表示用于创建迷你图的 范围 。”
所以你必须使用字符串类型的范围引用,
但是您可以使用目标和数组参数调用子过程
将数组值插入前面的单元格作为解决方法:
Sub ExampleCall()
Dim arr: arr = Array(1, 2, 3, 4, 5)
AddSparkLine Sheet1.Range("F2"), arr
End Sub
Sub AddSparkLine(target As Range, arr)
'a) count zero-based array elements
Dim n As Long: n = UBound(arr) + 1
'b) define data range
Dim dataRng As Range: Set dataRng = target.Offset(, -n).Resize(1, n)
'c) write array to data range
dataRng = arr
'd) define SourceData string
Dim srcData As String: srcData = target.Parent.Name & "!" & dataRng.Address
'e) insert spark lines
target.SparklineGroups.Add Type:=xlSparkColumn, SourceData:=srcData
End Sub
我想使用数组而不是范围作为迷你图的数据输入。
而不是这个:
Range("F2").SparklineGroups.Add Type:=xlSparkColumn, SourceData:="A2:E2"
像这样:
Range("F2").SparklineGroups.Add Type:=xlSparkColumn, SourceData:=Array(1,2,3,4)
Is it possible to use an array as input of SparkLine SourceData with VBA?
没有. - 由于help
所需的 SourceData
字符串 “表示用于创建迷你图的 范围 。”
所以你必须使用字符串类型的范围引用, 但是您可以使用目标和数组参数调用子过程 将数组值插入前面的单元格作为解决方法:
Sub ExampleCall()
Dim arr: arr = Array(1, 2, 3, 4, 5)
AddSparkLine Sheet1.Range("F2"), arr
End Sub
Sub AddSparkLine(target As Range, arr)
'a) count zero-based array elements
Dim n As Long: n = UBound(arr) + 1
'b) define data range
Dim dataRng As Range: Set dataRng = target.Offset(, -n).Resize(1, n)
'c) write array to data range
dataRng = arr
'd) define SourceData string
Dim srcData As String: srcData = target.Parent.Name & "!" & dataRng.Address
'e) insert spark lines
target.SparklineGroups.Add Type:=xlSparkColumn, SourceData:=srcData
End Sub