Як перетворити рядок на довгий у vba (з прикладами)


Ви можете використовувати функцію CLng у VBA, щоб перетворити текстовий рядок на довгий тип даних.

Ось два поширені способи використання цієї функції на практиці:

Спосіб 1. Перетворіть String на Long у VBA

 Sub ConvertStringToLong ()

    Dim i As Integer

    For i = 2 To 11
        Range(" B " & i) = CLng(Range(" A " & i))
    Next i

End Sub

Цей конкретний макрос перетворить кожен рядок у діапазоні A2:A11 на довгий тип даних і відобразить довгі значення в діапазоні B2:B11 .

Спосіб 2. Перетворення рядка на довгий у VBA (лише якщо рядок є числом)

 Sub ConvertStringToLong()

    Dim i As Integer

    For i = 2 To 11
        If IsNumeric(Range(" A " & i)) Then
            Range(" B " & i) = CLng(Range(" A " & i))
        Else
            Range(" B " & i) = 0
        End If
    Next i

End Sub

Цей конкретний макрос перетворює кожен рядок у діапазоні A2:A11 на довгий тип даних, лише якщо рядок є числом. В іншому випадку рядок буде перетворено на нульове значення.

Наступні приклади показують, як використовувати кожен метод на практиці.

Приклад 1. Перетворення рядка на Long у VBA

Припустимо, у нас є такий стовпець значень в Excel, наразі відформатований як текстові рядки:

Припустімо, ми хочемо перетворити кожен рядок на довгий тип даних і відобразити його в стовпці B.

Для цього ми можемо створити такий макрос:

 Sub ConvertStringToLong ()

    Dim i As Integer

    For i = 2 To 11
        Range(" B " & i) = CLng(Range(" A " & i))
    Next i

End Sub

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

VBA перетворює рядок на довгий

Зауважте, що кожен текстовий рядок у стовпці A було перетворено на довгий тип даних і відображається в стовпці B.

Приклад 2: перетворення рядка на довгий у VBA (лише якщо рядок є числом)

Припустимо, у нас є такий стовпець значень в Excel, наразі відформатований як текстові рядки:

Припустімо, ми хочемо перетворити кожен рядок на довгий тип даних , лише якщо рядок є числом , і відобразити їх у стовпці B.

Для цього ми можемо створити такий макрос:

 Sub ConvertStringToLong()

    Dim i As Integer

    For i = 2 To 11
        If IsNumeric(Range(" A " & i)) Then
            Range(" B " & i) = CLng(Range(" A " & i))
        Else
            Range(" B " & i) = 0
        End If
    Next i

End Sub

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

Зауважте, що лише текстові рядки в стовпці A, які є числами, перетворюються на довгі типи даних у стовпці B.

В іншому випадку текстові рядки просто перетворюються на нульове значення.

Примітка . Ви можете знайти повну документацію для функції VBA CLng тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

VBA: як видалити пробіли з рядка
VBA: як підрахувати випадки появи символів у рядку
VBA: як перевірити, чи містить рядок інший рядок

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *