IF语句与Excel VBA中的Chart函数结合使用

时间:2015-05-11 14:38:07

标签: excel excel-vba excel-formula vba

我还是VBA的新手,到目前为止,我已经设法通过一些在线帮助完成了我的任务,但是这个对我来说太遥远了。

此处的示例表:http://s000.tinyupload.com/index.php?file_id=50923272994978624314

我想要做的是 - 如果A栏包含该月的任何最后日期(2015-01-31,2015-02-28,2015-03-31,2015-04-30,2015) -05-31,2015-06-30,2015-07-31,2015-08-31,2015-09-30,2015-10-31,2015-11-30,2015-12-31),选择无论哪个那些日期列具有(选择具有这些值的单元格精确),在B列中选择相应的单元格(例如,如果A10中有2015-04-30,也选择B10值)并创建图表(简单2D)群集列)具有选定的值(横轴上的日期,纵轴上的金额)。

想法是有一个图表显示每个月末的总金额(因为B栏中的值是累积的),手动操作很简单 - 查找当月的最后一天并查看货币价值对应的B列,然后在工作表中的月份中的任何最后一天重复并创建图表。但我每天都会这样做,所以我试图将其自动化(通过宏)。

1 个答案:

答案 0 :(得分:0)

如果你想要一个vba解决方案,试试这个:

Sub Month_Chart()

Dim mydate As Date
Dim myRange, totrange As Range
   Set totrange = Range("A1:B1")
   'Select Dates based on selection
   For Each c In Selection
   'Build date
   mydate = DateSerial(Left(c, 4), Mid(c, 6, 2), Mid(c, 9, 2))
   'Check last day of month
   If Day(mydate + 1) = 1 Then
        'Create Range
        Set myRange = Range(c, c.Offset(0, 1))
       Set totrange = Union(totrange, myRange)
   End If

   Next c
  'Create Chart
    ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
    ActiveChart.SetSourceData Source:=totrange
End Sub