问:如何从 Excel 工作表中获取特定行中最后使用的列。
虽然这是使用 Excel VBA 的简单任务,但使用 Powerpoint VBA 更困难。
这是我的 Excel 工作表的示例
重现步骤
- 创建并保存一个新的 Excel 工作表,如我上面的示例
- 为 VBA 编辑器打开一个新的 PowerPoint 演示文稿并点击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 标签?哦