2014-10-16 125 views
1

如何删除excel vba中给定索引处字符串的元素?我当前的代码如下所示:删除excel中给定索引处字符串的元素vba

Private Sub RemovePeriods_Click() 
Dim i As Integer 
Dim Cutoff As Integer 

For i = 0 To 14283 

Cutoff = InStr(1, Range("K6").Offset(i, 0).Value, ".", vbTextCompare) 
If Cutoff > 0 Then 

End If 
Next i 
End Sub 

所以在这最后的if语句我要编写代码,能够消除截止指定索引处的时期。我该怎么做呢?

在此先感谢!

+2

如果你只是想删除所有期间你可以用'替换()' - 如果你想仅删除特定的时间段,那么你可以使用左()和右()之前得到的字符串部分并遵循特定的索引,并将它们连接起来。 – 2014-10-16 20:34:06

+0

那工作,谢谢! – ajs 2014-10-16 20:48:47

+1

@TimWilliams您可以使用'Replace'的'Start'和'Count'参数替换一些实例。 ('Replace(string,“。”,“”,1,1,vbTextCompare)'顺便说一句,你应该将此作为回答 – 2014-10-17 05:21:27

回答

0

这将做你的要求。试试这个,让我知道。

Private Sub RemovePeriods_Click() 

     Dim i    As Integer 
     Dim Cutoff   As Integer 
     Dim rngData   As Range 
     Dim strToReplace As String 

     'Assign String to replace here 
     strToReplace = "." 

     For i = 0 To 14283 
      'Assign the cell to Range 
      Set rngData = Range("K6").Offset(i, 0) 
      Cutoff = InStr(1, rngData, strToReplace, vbTextCompare) 
      If Cutoff > 0 Then 
       'Apply Replace formula 
       rngData = WorksheetFunction.Replace(rngData, Cutoff, Len(strToReplace), "") 
      End If 
     Next i 

     Set rngData = Nothing 

End Sub 
+0

也是,对于14k单元,你可能想使用VBA数组而不是神经网络,除非你告诉我,你的电脑上只需要不到一秒钟,情况可能如此,但我仍然不喜欢它^^ – 2014-10-17 15:37:42

相关问题