Как я могу скопировать со свойствами ячейки? - PullRequest
0 голосов
/ 31 марта 2020

В настоящее время у меня есть следующий код. Это всегда должно быть 9 цифр. Вполне возможно, что в Vlookup есть код с 6 цифрами, и перед этим необходимо показать 0, например 000342345. С имеющимся у меня кодом он скопирует: 342345. Как я могу получить 0, прежде чем показано в копии?

        sheetname.Cells(11, 4).Value = "=VLOOKUP(D10,List!Z:AA,2,FALSE)"
        sheetname.Range("D11").Copy
        sheetname.Range("D11").PasteSpecial Paste:=xlPasteValues

Ответы [ 3 ]

1 голос
/ 31 марта 2020

Решение 1

Просто добавьте требуемый формат чисел в ячейку назначения

sheetname.Range("D11").NumberFormat = "000000000"

, чтобы любой номер в D11 имел 9 цифр. При таком подходе число будет сохранено в виде значения цифра c в ячейке (так что вы можете рассчитать с ним). Это, вероятно, предпочтительное решение.


Решение 2

Или если вы хотите, чтобы ваш номер был в виде текста (но учтите, что вы теряете возможность вычислять с этим «числом», потому что это на самом деле текст) вы можете использовать формулу TEXT:

sheetname.Cells(11, 4).Formula = "=TEXT(VLOOKUP(D10,List!Z:AA,2,FALSE),""000000000"""

Обратите внимание, что вы должны использовать .Formula для написания формулы, а не .Value.

0 голосов
/ 31 марта 2020

Поскольку вас интересуют только значения, вам следует избегать прохождения формул и просто кода:

With sheetname.Cells(11, 4)
    .Value = WorksheetFunction.VLookup(.Offset(-1), Worksheets("List").Range("Z:AA"), 2, False)
    .NumberFormat = "000000000"
End With
0 голосов
/ 31 марта 2020

Вы можете сделать что-то вроде ниже.

    sheetname.Cells(11, 4).Value = "=Right(""000000000"" & VLOOKUP(D10,List!Z:AA,2,FALSE),9)"
    sheetname.Range("D11").Copy
    sheetname.Range("D11").PasteSpecial Paste:=xlPasteValues

Добавьте 0 перед значением VLOOKUP и выберите необходимый символ в строке. Вы также можете отрегулировать длину строки, проверив значение VLOOKUP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...