在幻灯片上查找图表中条形结束的特定位置

时间:2018-05-24 20:08:56

标签: vba powerpoint powerpoint-vba

我有特定的公司请求,要求我在每个栏的末尾添加一行。该行必须是图形之外的对象行,我必须为每个图形执行此操作。他们希望线在动画制作之前存在,他们希望在显示任何数据之前它在幻灯片的每个图表上,所以唯一的选择是将它作为对象。

有没有办法实现自动化?

我正在考虑找到图表上条形结束位置的东西,然后找到相对于幻灯片的位置并创建一条线,该线条是放置在该位置的条形图的宽度。

我不确定是否可以这样做,任何建议都会受到赞赏。

这是一个帮助传达我的问题的例子。

Green bars need added

1 个答案:

答案 0 :(得分:-1)

听起来您想查找某个范围中最后使用的单元格。为此,有几种选择。

Sub FindingLastRow()
'PURPOSE: Different ways to find the last row number of a range
'SOURCE: www.TheSpreadsheetGuru.com

Dim sht As Worksheet
Dim LastRow As Long

Set sht = ActiveSheet

'Using Find Function (Provided by Bob Ulmas)
  LastRow = sht.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row

'Using SpecialCells Function
  LastRow = sht.Cells.SpecialCells(xlCellTypeLastCell).Row

'Ctrl + Shift + End
  LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row

'Using UsedRange
  sht.UsedRange 'Refresh UsedRange
  LastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row

'Using Table Range
  LastRow = sht.ListObjects("Table1").Range.Rows.Count

'Using Named Range
  LastRow = sht.Range("MyNamedRange").Rows.Count

'Ctrl + Shift + Down (Range should be first cell in data set)
  LastRow = sht.Range("A1").CurrentRegion.Rows.Count

End Sub

然后...您可以使用这些方法找到最后使用的列...

Sub FindingLastColumn()

'PURPOSE: Different ways to find the last column number of a range
'SOURCE: www.TheSpreadsheetGuru.com

Dim sht As Worksheet
Dim LastColumn As Long

Set sht = ThisWorkbook.Worksheets("Sheet1")

'Ctrl + Shift + End
  LastColumn = sht.Cells(7, sht.Columns.Count).End(xlToLeft).Column

'Using UsedRange
  sht.UsedRange 'Refresh UsedRange
  LastColumn = sht.UsedRange.Columns(sht.UsedRange.Columns.Count).Column

'Using Table Range
  LastColumn = sht.ListObjects("Table1").Range.Columns.Count

'Using Named Range
  LastColumn = sht.Range("MyNamedRange").Columns.Count

'Ctrl + Shift + Right (Range should be first cell in data set)
  LastColumn = sht.Range("A1").CurrentRegion.Columns.Count

End Sub

如果有其他问题,请发回。