Вы можете использовать Instr , mid, Left и Right, чтобы сделать эту работу. Я сделал 1 пример с MSDN, вы должны быть в состоянии выяснить, остальные
Dim OldPhoneNumber As String
Dim NewPhoneNumber As String
Dim PreFix As String
Dim PreFix2 As String
' You can replace this line in Access, just make sure the full phone number is stored in "OldPhoneNumber"
OldPhoneNumber = Worksheets(<worksheet name>).Range(<cell name>).Value
PreFix = Left(OldPhoneNumber, InStr(1, OldPhoneNumber, "-", 1))
PreFix2 = Left(OldPhoneNumber, InStr(1, OldPhoneNumber, "-", 1) - 1)
NewPhoneNumber = Replace(OldPhoneNumber, PreFix, "(" & PreFix2 & ") ")
Debug.Print (NewPhoneNumber)
Видя, как не все телефонные номера отформатированы точно так же, вы должны сделать различные правила для каждого различного отформатированных телефона номер (необходимо 1, что проверяет «-» «». и один, который проверяет вы также можете отфильтровать пространства
Готовы ли вы использовать VBA для этого? есть простой способ сделать это в vba – Gutanoth
, если это возможно сделать это в vba .. и проще, чем использовать функцию замены .... пожалуйста, объясните, как мне это сделать .. Спасибо! –
Ну, я использовал функцию replace (см. Мой ответ), но вы также можете отфильтровать первые 3 числа и последние 7 в 2 разных строковых переменных (префикс и суффикс), а затем в конце вы делаете что-то вроде: 'Newphonenumber = "(" & prefix & ")" & suffix – Gutanoth