Powerpoint VBA:如何从Excel工作表中获取行中最后使用的列

问题描述 投票:2回答:4

Q:如何从Excel工作表中获取特定行中的最后使用的列。尽管这是a simple task using Excel VBA,但使用Powerpoint VBA更加困难。

这是我的Excel工作表的一个示例

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9YWFdySi5wbmcifQ==” alt =“在此处输入图像描述”>

复制步骤

  • 像上面的例子一样创建和保存一个新的Excel工作表
  • 打开一个新的PowerPoint演示文稿,并为VBA编辑器点击ALT + F11
  • 插入下面的代码,并在第3行中自定义测试Excel文件的路径
  • 使用F8每行执行代码行
Sub findlastcolumn()

    Set objExcel = CreateObject("Excel.application")
    Set objWorkbook = objExcel.Workbooks.Open("C:\Users\<USERNAME>\Desktop\data.xls")

    objExcel.Visible = True

    'works in Powerpoint VBA but delivers the wrong column
    lastcol = objWorkbook.Sheets(1).UsedRange.Columns.Count

    'produces an error in Powerpoint VBA
    'but works in Excel VBA, correct column in Excel VBA
    lastcol = objWorkbook.Sheets(1).Cells(1, 254).End(Direction:=xlToLeft).Column

    'produces an error in Powerpoint VBA
    'but works in Excel VBA, and wrong column in Excel VBA too
    lastcol = objWorkbook.Sheets(1).Cells.SpecialCells(xlLastCell).Column

    'wrong column. Powerpoint VBA' find method differs from Excel' find method
    'searchdirection isn't available in Powerpoint VBA
    lastcol = objWorkbook.Sheets(1).Rows(1).Find(what:="*", _ 
        after:=objWorkbook.Sheets(1).Cells(1, 1), searchdirection:=xlPrevious).Column

    objExcel.Quit
    Set objWorkbook = Nothing
    Set objExcel = Nothing

End Sub

所需结果:

我要获取lastcol = 3

我的代码中的注释向您显示了到目前为止我已经尝试了什么以及它们产生了什么错误。感谢您的任何建议。

没有PowerPoint 2003标记吗? O.o

问:如何从Excel工作表中获取特定行中的最后使用的列。尽管这是使用Excel VBA的简单任务,但使用Powerpoint VBA则更加困难。这是我的Excel工作表的示例...

vba powerpoint excel-2003
4个回答
3
投票

您发布的Excel特定代码应该可以正常工作,并提供与在Excel中执行相同的结果。


0
投票

这是您可以做的。 *附带条件:未经测试的代码。如果这不起作用,请在评论中告诉我*


0
投票

[如果有人遇到类似问题,我只是想发布更正的代码。 (感谢Peter Albert


0
投票

@ nixada,您可以

© www.soinside.com 2019 - 2024. All rights reserved.