在excel-spreadsheet-rows中循环,直到在powerpoint中使用VBA-macro为空。 对于每一行读取值并写入2-dim-array。 不,请select

我想做一个简单的search,并在PowerPoint中取代。

我试图通过在powerpoint中使用VBAmacros的Excel电子表格进行循环。 电子表格有两列和100行。 我想让macros遍历行,直到它到达一个空的单元格。 对于每一行,它都会读取第1列和第2列的值,并将其写入二维数组。

我使用各种.select语句运行,但是我不喜欢这种方式(是select越野车?search和replace工作了几次,但更改电子表格后,macros常常崩溃)。 我正在尝试使用性能更好的更健壮的方法。

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 

您可以将其直接转储到不带循环的变体数组。

我已经整理好了你的variables。

请在这里更改path到您的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