2015-01-05 2 views
1

나는 파워 포인트에서 간단한 검색과 바꾸기를 원한다.Excel에서 VBA 매크로를 사용하여 빈 페이지가 나타날 때까지 엑셀 스프레드 시트 행을 반복합니다. 각 행에 대해 값을 읽고 2-dim-array에 씁니다. 아니. 선택.

나는 파워 포인트에서 VBA 매크로를 사용하여 Excel 스프레드 시트를 반복하려고합니다. 스프레드 시트에는 두 개의 열과 ~ 100 개의 행이 있습니다. 빈 셀에 도달 할 때까지 행을 반복하는 매크로를 원합니다. 각 행에 대해 셸은 열 1과 열 2의 값을 읽고이 값을 2 차원 배열에 씁니다.

여러 가지 .select-statements를 사용하여 실행했지만, 그런 식으로 마음에 들지 않았습니다 (검색 및 바꾸기는 수 차례에 걸쳐 수행되었지만 스프레드 시트를 너무 자주 변경하면 매크로가 항상 손상됨). 더 나은 성능으로 더 강력한 방법을 사용하려고합니다.

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 

답변

0

루프가없는 변형 배열에 직접 덤프 할 수 있습니다.

나는 귀하의 변수를 정리하기 위해 완벽하게 정리했습니다. ": \ 임시 \의 test.xlsx C"

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 

은 pls, 여기 xl 파일의 경로를 변경