在vbscript

时间:2018-04-20 12:37:26

标签: csv vbscript

我需要查找并替换 CSV文件 &#34 ;;使用vbscript在" P" 列中添加字符。

enter image description here

旧字符串:

  

不合规的隔离T键;孤立的罗盘与绝缘破碎

CSV替换后的新字符串:

  

不合规的隔离T-key |||孤立的指南针与破碎   绝缘

我试过这段代码却没有成功。

如何解决这个问题?

我的代码如下。

   On Error Resume Next  
   Const xlCSV = 6

   Start_Time = Timer    

   Set objExcel = CreateObject("Excel.Application")
   Set objWorkbook = objExcel.Workbooks.Open("RAS.csv")
   objExcel.DisplayAlerts = FALSE
   objExcel.Visible = TRUE
   Set objWorksheet = objWorkbook.Worksheets("RAS")   
   objWorkbook.Worksheets("RAS").Range("P:P").Replace "; ", "||| "
   objExcel.Quit  

   End_Time = Timer
   Total_Time = FormatNumber(End_Time - Start_Time, 2)     

   if  Err.Number <> 0  then 
        MsgBox("REPLACE : " & Date() & vbcrlf & Err.Number & vbcrlf & Err.Description)   
     else    
        MsgBox("REPLACE : OK! " & vbcrlf & Date() & vbcrlf & "Total Time : " & Total_Time )         
   end if 

1 个答案:

答案 0 :(得分:1)

您没有收到任何错误,因为在代码开头,您已指示系统通过放置On Error Resume Next语句来忽略错误。我评论说,并开始按顺序获得以下错误:

  • 找不到文件RAS.csv,为避免这种情况,我输入了完全限定的文件路径,而不仅仅是文件的名称
  • 之后我找到了最后一行的索引,并将范围P1中的内容替换为列P中的最后一行

另外,正如评论中提到的那样,您在退出excel之前没有保存工作簿。

<强>代码:

'On Error Resume Next  
   Const xlCSV = 6

   Start_Time = Timer    

   Set objExcel = CreateObject("Excel.Application")
   Set objWorkbook = objExcel.Workbooks.Open("E:\Work\Codes\SO\RAS.csv")    'Entered full path here
   objExcel.DisplayAlerts = FALSE
   objExcel.Visible = TRUE
   Set objWorksheet = objWorkbook.Worksheets("RAS")   
   lastRow =  objWorksheet.Range("P"&objWorksheet.Rows.Count).End(-4162).row
   objWorksheet.Range("P1:P"&lastRow).Replace "; ", "||| "


   End_Time = Timer
   Total_Time = FormatNumber(End_Time - Start_Time, 2)     

   if  Err.Number <> 0  then 
        MsgBox("REPLACE : " & Date() & vbcrlf & Err.Number & vbcrlf & Err.Description)   
     else    
        MsgBox("REPLACE : OK! " & vbcrlf & Date() & vbcrlf & "Total Time : " & Total_Time )         
   end if
   objWorkbook.save         'save before quitting excel
   objExcel.quit

最终结果:

enter image description here