Выбор только 10 символов (справа) на VBA Excel - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь создать макрос VBA, который позволяет мне, например:

Column A:   123456789101112       Column F : 6789101112 

Только 10 символов в столбце F.Если в столбце A меньше 10 символов, например 0:

Column A:  123458    Column F: 0000123458

Это функция, позволяющая выбрать количество символов:

For i = 1 To table1Rows - 1  
table1(1 + i, 6) = Right(table1(1 + i, 1), 15)

Но мне нужно заполнить 10 символов, если у меня меньше 10 в столбце A.

Ответы [ 3 ]

0 голосов
/ 29 ноября 2018

При этом формула будет помещена в столбец F на основе количества данных в столбце A.
Формула использует r1c1 запись - R сама по себе означает эту строку, C1 означаетстолбец 1.

Это то же самое, что написать =TEXT(RIGHT(A1,10),REPT(0,10)) и перетащить вниз.

Sub Test()

    Dim rLastRow As Range

    With ThisWorkbook.Worksheets("Sheet1")
        Set rLastRow = .Cells(.Rows.Count, 1).End(xlUp) 'Based on column A (column #1)

        'Column A Offset by 5 columns is column F.
        .Range(.Cells(1, 6), rLastRow.Offset(, 5)).FormulaR1C1 = _
            "=TEXT(RIGHT(RC1,10),REPT(0,10))"

    End With

End Sub
0 голосов
/ 29 ноября 2018

Я думаю, это то, что вы ищете:

For i = 1 To table1Rows - 1
    table1(1 + i, 6) = Format(Right(table1(1 + i, 1), 10), "0000000000")
Next
0 голосов
/ 29 ноября 2018

следующий код добавит остальные нули к вашей строке:

Dim strnbr As String

strnbr = 123

While Len(strnbr) < 10
    strnbr = "0" + strnbr
Wend
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...