2014-02-28 55 views
0

我有一些代碼,我已經入侵併且是一個更大的腳本的一部分,我慢慢地做我想做的事,但也理解它在做什麼,但我是具有帶有字符串的問題,將內容直接輸出時爲單獨的細胞VB如何解析字符串內容

DIM objWMIService, objItem, colItems 
DIM strDriveType, strDiskSize, csv 

SET objWMIService = GETOBJECT("winmgmts:\\" & strComputer & "\root\cimv2") 
SET colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk WHERE DriveType=3") 
csv = "Drive, Size (GB), Used (GB), Free (GB), Free(%)" & vbcrlf 
FOR EACH objItem in colItems 

DIM pctFreeSpace,strFreeSpace,strusedSpace 

pctFreeSpace = INT((objItem.FreeSpace/objItem.Size) * 1000)/10 
strDiskSize = Int(objItem.Size /1073741824) & "Gb" 
strFreeSpace = Int(objItem.FreeSpace /1073741824) & "Gb" 
strUsedSpace = Int((objItem.Size-objItem.FreeSpace)/1073741824) & "Gb" 
csv = csv & objItem.Name & vbtab & strDiskSize & vbtab & strUsedSpace & vbTab & strFreeSpace & vbtab & pctFreeSpace & vbcrlf 

objXLApp.Sheets("OA Summary").Range("D7").Value = (CSV) 

'objXLApp.Sheets("OA Summary").Range("D7").Value = (objItem.Name) 
'objXLApp.Sheets("OA Summary").Range("E7").Value = (strDiskSize) 
'objXLApp.Sheets("OA Summary").Range("F7").Value = (strUsedSpace) 
'objXLApp.Sheets("OA Summary").Range("G7").Value = (strFreeSpace) 
'objXLApp.Sheets("OA Summary").Range("H7").Value = (pctFreeSpace) 

的「CSV」值到一個txt文件和工作得很好,並有望。

Drive Size Used Free Free(%) 
C:   97Gb 67Gb 29Gb 30.7 
D:   367Gb 312Gb 55Gb 15 
E:   465Gb 256Gb 209Gb 44.9 
R:   149Gb 8Gb  141Gb 94.2 

但是,當我嘗試把這個成excel我不能分開單元格我在一個單元格中獲得上述。如果我取消註釋objXLApp表,我只得到一行,在我的情況下是R驅動器。

任何幫助都很受歡迎和讚賞!

+1

哪裏'Next'爲'對於Each'?另一方面,您可以在Excel中打開文本文件(如CSV文件)。 – shahkalpesh

+0

嗨shahkalpesh,Excel文檔打開,並在腳本中進一步填充,並在屏幕上 – user3364550

回答

0

當您取消註釋代碼爲存款,你需要使用類似下移行:

Dim I As Long 
I = 6 
For Each objItem In colItems 
I = I + 1 
objXLApp.Sheets("OA Summary").Range("D" & I).Value = (objItem.Name) 
+0

感謝您的快速響應,當我嘗試我的代碼我得到「預期結束語句」上的「昏暗的我一樣長」在字符9這是​​「AS Long」的起始 – user3364550

+0

然後嘗試刪除「As Long」......... –

+0

然後我在「colItems」中的「循環控制變量」中獲得「無效」,但是im有點困惑,因爲這進一步工作得很好? – user3364550