Excel VBA从图形的x轴隐藏空列名

Excel VBA从图形的x轴隐藏空列名,excel,vba,dynamic,charts,Excel,Vba,Dynamic,Charts,我试图从一个动态的值范围中使用宏创建一个图表。下面是我的代码 Sub Chart() Dim rng As Range, cht As ChartObject, LstRow As Long, i As Long Dim sh As Worksheet, lastCol As Long, lastC As Long, ColAddr As String Set sh = ActiveSheet 'use here your sheet LstRow = sh.Cells(

我试图从一个动态的值范围中使用宏创建一个图表。下面是我的代码

Sub Chart()
 Dim rng As Range, cht As ChartObject, LstRow As Long, i As Long
 Dim sh As Worksheet, lastCol As Long, lastC As Long, ColAddr As String
  Set sh = ActiveSheet      'use here your sheet
   LstRow = sh.Cells(Cells.Rows.Count, 1).End(xlUp).Row 'last row in A:A
   'Last column on the third row
   For i = 2 To LstRow
        lastC = sh.Cells(i, Cells.Columns.Count).End(xlToLeft).Column
        If lastC > lastCol Then lastCol = lastC
   Next i
   ColAddr = sh.Cells(1, lastCol).Address 'last column address (on first row)

   Set rng = sh.Range(sh.Range("E2"), sh.Cells(LstRow, lastCol))
   Set cht = ActiveSheet.ChartObjects.Add(Left:=100, Top:=80, Width:=350, _
                                                                Height:=250)

   cht.chart.SetSourceData Source:=rng
   cht.chart.ChartType = xlColumnClustered
    sh.ChartObjects(sh.ChartObjects.Count).chart.SeriesCollection(1).XValues = _
                                            "='" & sh.name & "'!$F$1:" & ColAddr
End Sub
输出如下所示:


但我只想显示x轴标签中有数据的列。因此,基本上根据我的需要,X轴标签应该只包含像201520162017201820192023这样的标签,而不是2020202022。

你可以隐藏没有数据的列。我怎么做。我想用宏来做,如果只有一行数据,循环遍历它并隐藏那些空单元格的列。如果有多行,则必须在隐藏列之前检查所有行