2013-06-28 41 views
0

所以這裏是一個爲雅,有點複雜(我認爲)。Powershell和Microsoft Word書籤和單元格

我有一個文檔模板,顯示如下: word_cells

我有一個存儲功能及以下呼叫顯示: 功能(有點難看):

function storage 
{ 
param([string]$CompName) 
Get-WmiObject win32_volume -ComputerName $CompName -Filter "DriveType=3 AND Label <> 'System Reserved' AND DriveLetter IS NOT NULL" | Sort-Object DriveLetter | ForEach-Object{"{0}, {1} - {2}gb `n" -f $_.Name,$_.Label,([Math]::Truncate($_.Capacity/1GB))} 
} 

電話:

#Storage input 
Write-Host "...writing Storage" 
$objRange = $wordDoc.Bookmarks.Item("storage").Range 
$objRange.Text = storage -CompName $computer 
$wordDoc.Bookmarks.Add("storage",$objRange) | Out-Null 

現在,它的一半工作。它以正確的格式輸出值,這意味着查詢的工作原理和Word中的書籤是正確的,但是所有的驅動器都放在一個伸出的單元格中。我現在的問題是,我希望每個驅動器都出現在模板內的自己的單元格(最大列)中。目前,我已將Word書籤「存儲」放置在「存儲」右側的大單元中。

有沒有辦法將系統中的每個驅動器串放入它自己的單元格?這可能嗎?此外(如果這是可行的),有沒有辦法根據代碼中的需求自動添加行?說我有一個這樣的服務器與C: - G:而另一臺服務器只有一個C:和D :.是否有可能使用單行開始模板,並根據需要添加更多代碼?

什麼當前條目看起來像:

current_entries

我想什麼它看起來像:

preferred

謝謝!

+0

會有一些字-VBA解決方案對你有幫助?我可以展示如何在VBA中執行此操作,並嘗試將其轉換爲PowerShell。 –

+0

這將是一個開始。我仍然不確定我需要的是完全可行的。 –

回答

0

正如評論中所認同的那樣,有一些基於Word-VBA的活動文檔提示。希望這將有助於向前邁進一步。

以前 enter image description here

A)在電池下方添加小區信息在您storage bookmark is located

Sub text_to_cell_below_bookmark() 

     ActiveDocument.Bookmarks("storage").Range.Next(_ 
     wdCell, _ 
     ActiveDocument.Bookmarks("storage").Range.Tables(1).Columns.Count _ 
       ).Text = "your storage information in the cell below" 
    End Sub 

enter image description here

B)添加額外行的單元格下面書籤:

Sub additional_row_below_bookmark() 

    ActiveDocument.Bookmarks("storage").Range.Tables(1).Rows.Add _ 
     ActiveDocument.Bookmarks("storage").Range.Tables(1).Rows(_ 
     ActiveDocument.Bookmarks("Storage").Range.Information(wdEndOfRangeRowNumber) + 1) 
    End Sub 

編輯如何讓行,並在表格單元格您的書籤所在的列:

Dim bmRow, bmCol 
'to get row 
bmRow = ActiveDocument.Bookmarks("storage").Range.Information(wdEndOfRangeRowNumber) 
'to get column 
bmCol = ActiveDocument.Bookmarks("storage").Range.Information(wdEndOfRangeColumnNumber) 
+0

謝謝。所以對於B,wdEndOfRangeRowNumbers變量來自哪裏?另外,關於表之後的(1)是什麼? –

+0

'表(1)'是指您的書籤當前所在的唯一表格。「信息(wdEndOfRangeRowNumber)」 - 這是一種返回文檔參數的類文檔信息,例如書籤所在的錶行號。 –

+0

所以我快到了。有沒有辦法獲得一個表中的對象的座標?例如,表格中「存儲」書籤項的座標... –

相關問題