2014-02-28 50 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