使用powerpoint中的VBA宏循环excel电子表格行,直到为空。对于每行,读取值并写入2维数组。否。选择

使用powerpoint中的VBA宏循环excel电子表格行,直到为空。对于每行,读取值并写入2维数组。否。选择,excel,vba,powerpoint,Excel,Vba,Powerpoint,我想在powerpoint中进行简单的搜索和替换 我正在尝试使用powerpoint中的VBA宏循环浏览excel电子表格。 电子表格有两列和大约100行。我希望宏在行中循环,直到到达一个空单元格。 对于每一行,shell读取第1列和第2列的值,并将它们写入二维数组 我使用各种.select语句来运行它,但我不喜欢这种方式,是select错误吗?搜索和替换工作了几次,但在频繁更改电子表格后,宏总是崩溃。 我正在尝试使用一种更健壮、性能更好的方法 Dim excelDataArray(120, 2

我想在powerpoint中进行简单的搜索和替换

我正在尝试使用powerpoint中的VBA宏循环浏览excel电子表格。 电子表格有两列和大约100行。我希望宏在行中循环,直到到达一个空单元格。 对于每一行,shell读取第1列和第2列的值,并将它们写入二维数组

我使用各种.select语句来运行它,但我不喜欢这种方式,是select错误吗?搜索和替换工作了几次,但在频繁更改电子表格后,宏总是崩溃。 我正在尝试使用一种更健壮、性能更好的方法

Dim excelDataArray(120, 2) As String

Dim slidedeck As Presentation
Set slidedeck = ActivePresentation

Dim singleslide As Slide

Dim excelFile As Excel.Workbook
Set excelFile = Excel.Application.Workbooks.Open(spreadsheetFolder)
Dim excelSheet As Excel.Worksheet
Set excelSheet = excelFile.Worksheets("Sheet1")

'Loop through each row in Column A until empty row
Dim N As Integer
N = excelSheet.Cells(excelSheet.Rows.Count, "A").End(xlUp).Row
For i = 1 To N
    excelDataArray(i, 0) = excelSheet.Cells(i, "A").Value
    excelDataArray(i, 1) = excelSheet.Cells(i, "B").Value
Next

您可以直接将其转储到变量数组,而无需循环

我已经整理了你的变量以确保完整性

请在此处更改xl文件的路径,C:\temp\test.xlsx

Sub likethis()

Dim slidedeck As Presentation

Dim singleslide As Slide
Dim XLS As Excel.Application
Dim excelFile As Excel.Workbook
Dim excelSheet As Excel.Worksheet

Dim lngROw As Long
Dim X

Set slidedeck = ActivePresentation
Set XLS = New Excel.Application    
Set excelFile = XLS.Workbooks.Open("C:\temp\test.xlsx")
Set excelSheet = excelFile.Worksheets("Sheet1")

lngROw = excelSheet.Cells(excelSheet.Rows.Count, "A").End(xlUp).Row
ReDim X(1 To lngROw, 1 To 2)
X = excelSheet.Range("A1:B" & lngROw)
End Sub