Excel — форматирование значения (маски) VBA

#excel #vba

#excel #vba

Вопрос:

Я хотел бы отформатировать значение ячейки с помощью VBA.

если использовать макрос записи :

 Selection.NumberFormatLocal = """mask"";""mask"";""mask"";""mask"""
 

Я хочу замаскировать ячейку значением в ячейке или текстовом поле.

 Private Sub CommandButton1_Click()

Dim dgstring1, dgstring2, dgstring3, dgstring4 As String

'Ex Sheet1.Range("F26") = "Mask"

    dgstring1 = Sheet1.Range("F26") '
    dgstring2 = Sheet1.Range("F26")
    dgstring3 = Sheet1.Range("F26")
    dgstring4 = Sheet1.Range("F26")
    dgstring = "dgstring1;dgstring2;dgstring3;dgstring4"
    Selection.NumberFormatLocal = dgstring

End Sub
 

Комментарии:

1. Объявляя переменные таким образом, все они имеют тип Variant , и только последняя из них является a String . dgstring даже не объявлено. Для присвоения значения этой переменной вы создаете строку только в том виде, в каком ее можно увидеть. Хотите ли вы использовать значения, собранные из вышеуказанных диапазонов? Затем, как бы вы хотели, чтобы конкретное значение выглядело в этом специфическом формате? Пожалуйста, отредактируйте свой вопрос и покажите нам пример значения в General формате, за которым следует то же значение в нужном вам формате…

2. Спасибо за ваш быстрый ответ, но все равно ошибка, даже несмотря на то, что переменная была заменена на Variant, а последняя является строкой. Ошибка заключается в том, что «Не удалось установить NumberFormatLocal….

3. Исправление объявлений переменных не должно решить вашу проблему. Во всяком случае, я не хотел сказать, что они должны быть Variant типичными! Я объяснил, что делает ваш код. Я задал несколько уточняющих вопросов, но с этой точки зрения вы ничего не сделали. Если я не понимаю, что нужно делать, я не могу помочь… Можете ли вы показать нам то, о чем я просил в своем предыдущем комментарии?

4. Неужели так сложно отредактировать ваш вопрос и показать нам, чего вы хотите добиться? Похоже, я больше, чем вы, заинтересован в решении вашей проблемы… Вы уверены, что знаете, чего хотите?

Ответ №1: