2017-01-09 41 views
0

在我需要重新從我們的Salesforce實例記錄每週不正確的地址工作的自定義公式的Excel單元格中。我們使用報告收集格式不正確的地址並將它們導出到Excel文件。我的工作僅僅是處理文件中的數據以正確格式化,然後將它們重新插入到數據庫中。我怎樣可以得到特定字符串片段使用了寫在VBA

通常的地址格式爲這樣:

5芝麻街,北京市東城,隨地

分離這些都可以很容易地通過手工完成,但我通常有數百個地址中的一個工作時間,並使用默認的Excel公式傾向於需要大量的一次性將多個單元格拼湊成碎片。

因此,我編寫了一個自定義公式來運行單元格,並根據給定的「逗號」返回字符串的特定片段。所以,如果我給的1逗號號碼,我會得到「5芝麻街」,2會得到我「北京市東城」等

這是到目前爲止我的代碼:

Public Function fragmentAddress(address As String, numberofcommas As Integer) As String 
 
seen = 1 
 
lastComma = -1 
 
Dim x As Long 
 
Dim frag As Long 
 

 
For x = 0 To Len(address) 
 
    If Mid(address, x, 1) = "," & numberofcommas = seen Then 
 
     Exit For 
 
    ElseIf Mid(address, x, 1) = "," & numberofcommas <> seen Then 
 
     seen = seen + 1 
 
     lastComma = x 
 
    End If 
 
Next 
 
frag = Mid(address, lastComma + 1, seen - lastComma) 
 
fragmentAddress = frag

我還沒有實現處理的終值卻的能力,但它並沒有給我任何的輸出,只輸出「#VALUE!」當我嘗試錯誤,給它輸入

=fragmentAddress("3 Ashley Close, Charlton Kings",1)

我與編程經驗,但是這是我第一次寫在VBA東西。

任何幫助將不勝感激,謝謝。

回答

0

不能完全確定你的問題是什麼,但是這是簡單的:

Public Function GetAddressFragment(ByVal Address As String, ByVal Index As Integer) As String 
    Dim addr() As String 

    addr = Split(Address, ",") 

    On Error Resume Next 
    GetAddressFragment = Trim(addr(Index - 1)) 
End Function 
+0

完美,謝謝 道歉的問題被曲 –

相關問題