2016-07-13 4 views
0

10 번째 행에서 45 번째 행으로 ID와 같은 열 값을 업데이트해야하는 Excel 시트가 있습니다. 혼합 ID "abcd_10"이 있어야 "abcd_45"까지 확장해야합니다. for-loop를 사용하는 대신 수행 할 명령은 무엇입니까? 왜냐하면 for-loop는 셀을 반복해서 가리 키기 때문에 많은 시간을 사용하기 때문에 시간이 많이 소요됩니다. 이 코드를 사용하고 있습니다. 문제가 무엇인지 말해주십시오.PowerShell 명령을 사용하여 Excel 시트에서 열 값을 자동으로 생성

$codeName = $currentCode 
$finCode = $codeName + "_" + $i 
$currentSheet.Cells.Item($intRow, $currentCol).Value2 = $finCode 


$range1 = $currentSheet.Range("C10"); 
$r = $currentSheet.Range("C10:C45"); 
$range1.AutoFill($r, $currentCol) 

$finCode 제 10 행에 삽입 초기 값 "abcd_10"가 지금은 그것이 45 행까지에 "abcd_45"를 확장 할 필요가있다. 나는 이것을 위해 AutoFill을 사용했으나 효과가 없습니다.

답변

0

second parameterfill type 0 지정 (그래도 난 단지 VBA에서 테스트) 귀하의 경우에 작동합니다 기본 단지

$range1.AutoFill($r, 0) 

로보십시오. 경우에 당신은 표준 COM의 상호 운용성을 사용하는


업데이트 :

다음 스크립트 (나는 알 수없는 값에 대한 몇 가지 기본 값을 사용) 나를 위해 작동합니다.

$Filepath = "C:\tmp\posh\excel-interop\Book1.xlsx" 

$Excel = New-Object -Comobject Excel.Application 
$Excel.Visible = $True 
$Workbook = $Excel.Workbooks.Add() 
$currentSheet = $Workbook.Sheets.Item('Sheet1') 

$i = 10 
$codeName = 'abcd' 
$finCode = $codeName + "_" + $i 
$currentSheet.Cells.Item(10, 3).Value2 = $finCode 

$range1 = $currentSheet.Range("C10"); 
$r = $currentSheet.Range("C10:C45"); 
$range1.AutoFill($r, 0) 
+0

@ DAXholic : 0은 열 번호입니다. 필드 그래서 그것은 실 거예요. –

+0

더 많은 코드를 보여주세요. 현재 표준 COM을 사용하여 Excel 또는 다른 라이브러리와 상호 작용하는지 여부를 알 수 없습니다. – DAXaholic