使用vba在excel绘制sparkline时,如何标记最高点和最低点
时间: 2024-02-05 12:12:39 浏览: 131
可以使用以下代码来绘制sparkline并标记最高点和最低点:
```vba
Sub DrawSparklineWithMinMax()
'定义变量
Dim sparkRange As Range
Dim minCell As Range, maxCell As Range
Dim minVal As Double, maxVal As Double
'选择要绘制sparkline的范围
Set sparkRange = Range("A1:A10")
'计算最小值和最大值
minVal = WorksheetFunction.Min(sparkRange)
maxVal = WorksheetFunction.Max(sparkRange)
'找到最小值和最大值所在的单元格
Set minCell = sparkRange.Find(What:=minVal, LookIn:=xlValues)
Set maxCell = sparkRange.Find(What:=maxVal, LookIn:=xlValues)
'绘制sparkline
With ActiveSheet.Shapes.AddChart(xlLineMarkers, Left:=minCell.Left, Top:=minCell.Top, Width:=100, Height:=50)
With .Chart.SeriesCollection.NewSeries
.Values = sparkRange.Value
End With
.Chart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
.Chart.Axes(xlCategory).CategoryType = xlCategoryScale
.Chart.SetElement (msoElementDataLabelOutSideEnd)
End With
'在最小值和最大值所在的单元格上标记出对应的值
minCell.Offset(-1, 1).Value = "Min: " & minVal
maxCell.Offset(1, 1).Value = "Max: " & maxVal
End Sub
```
在这个代码中,我们首先选择要绘制sparkline的范围(这里是A1:A10)。然后,使用WorksheetFunction.Min和WorksheetFunction.Max函数计算出最小值和最大值。接下来,我们使用Find方法找到最小值和最大值所在的单元格。然后,使用Shapes.AddChart方法在最小值所在的单元格上绘制sparkline。最后,我们在最小值和最大值所在的单元格旁边标记出对应的值。
阅读全文