Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как изменить значение TextBox (Надпись) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как изменить значение TextBox (Надпись) (Формулы/Formulas)
Как изменить значение TextBox (Надпись)
potapov14 Дата: Понедельник, 29.08.2016, 14:24 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте, есть около 1000 текстбоксов, но не те, которые VBA а те, которые как "надпись". Они уже имеют значение от 1 до 1000. У меня есть колонка с нужными значениями.

Вопрос: как автоматически заменить значения этих полей?
Во вложении текстбоксы на первом листе, значения на втором.
К сообщению приложен файл: text-box.xlsx (9.7 Kb)
 
Ответить
СообщениеЗдравствуйте, есть около 1000 текстбоксов, но не те, которые VBA а те, которые как "надпись". Они уже имеют значение от 1 до 1000. У меня есть колонка с нужными значениями.

Вопрос: как автоматически заменить значения этих полей?
Во вложении текстбоксы на первом листе, значения на втором.

Автор - potapov14
Дата добавления - 29.08.2016 в 14:24
buchlotnik Дата: Понедельник, 29.08.2016, 15:16 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
как-то так [vba]
Код
Sub r_()
   For i = 1 To Sheets("Лист1").Shapes.Count
    Sheets("лист1").Shapes("textbox " & i).Select
    Selection.Characters.Text = Sheets("Лист2").Range("a1").Offset(i - 1, 0)
    Next
End Sub
[/vba]
К сообщению приложен файл: text-box.xlsm (16.0 Kb)


Сообщение отредактировал buchlotnik - Понедельник, 29.08.2016, 15:16
 
Ответить
Сообщениекак-то так [vba]
Код
Sub r_()
   For i = 1 To Sheets("Лист1").Shapes.Count
    Sheets("лист1").Shapes("textbox " & i).Select
    Selection.Characters.Text = Sheets("Лист2").Range("a1").Offset(i - 1, 0)
    Next
End Sub
[/vba]

Автор - buchlotnik
Дата добавления - 29.08.2016 в 15:16
Gustav Дата: Понедельник, 29.08.2016, 15:36 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2731
Репутация: 1132 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
или как-то так:
[vba]
Код
Sub changeTextBoxes()
    Dim shp As Shape
    For Each shp In Worksheets(1).Shapes
        If shp.Type = msoTextBox Then shp.OLEFormat.Object.Text = Worksheets(2).Cells(Mid(shp.Name, 9), 1)
    Next shp
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Понедельник, 29.08.2016, 15:48
 
Ответить
Сообщениеили как-то так:
[vba]
Код
Sub changeTextBoxes()
    Dim shp As Shape
    For Each shp In Worksheets(1).Shapes
        If shp.Type = msoTextBox Then shp.OLEFormat.Object.Text = Worksheets(2).Cells(Mid(shp.Name, 9), 1)
    Next shp
End Sub
[/vba]

Автор - Gustav
Дата добавления - 29.08.2016 в 15:36
potapov14 Дата: Понедельник, 29.08.2016, 16:17 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
buchlotnik,
Спасибо! Ваш вариант - это то, что мне надо!
 
Ответить
Сообщениеbuchlotnik,
Спасибо! Ваш вариант - это то, что мне надо!

Автор - potapov14
Дата добавления - 29.08.2016 в 16:17
potapov14 Дата: Понедельник, 29.08.2016, 16:48 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Есть небольшая загвоздка:
Это идеальное решение, если номер TextBox'а соответствует номеру ячейки. Но к сожалению в моём реальном примере не так.
У меня текстбокс имеет формат названия "lbl_номер_1". Получается, что номер "TextBox'а" может несоответствовать формату lbl_номер_1.
Есть ли возможность связывать именно имя текстбокса а не порядочный номер этого текстбокса?
К сообщению приложен файл: 8360358.xlsx (10.1 Kb)
 
Ответить
СообщениеЕсть небольшая загвоздка:
Это идеальное решение, если номер TextBox'а соответствует номеру ячейки. Но к сожалению в моём реальном примере не так.
У меня текстбокс имеет формат названия "lbl_номер_1". Получается, что номер "TextBox'а" может несоответствовать формату lbl_номер_1.
Есть ли возможность связывать именно имя текстбокса а не порядочный номер этого текстбокса?

Автор - potapov14
Дата добавления - 29.08.2016 в 16:48
sboy Дата: Понедельник, 29.08.2016, 17:10 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Попробуйте так
[vba]
Код
Sub changeTextBoxes()
    For x = 2 To Sheets(2).Cells(Rows.Count, 2).End(xlUp).Row
    shName = Sheets(2).Cells(x, 2).Value
    shtext = Sheets(2).Cells(x, 1).Value
    Sheets(1).Shapes(shName).OLEFormat.Object.Text = shtext
    Next x
End Sub
[/vba]


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Попробуйте так
[vba]
Код
Sub changeTextBoxes()
    For x = 2 To Sheets(2).Cells(Rows.Count, 2).End(xlUp).Row
    shName = Sheets(2).Cells(x, 2).Value
    shtext = Sheets(2).Cells(x, 1).Value
    Sheets(1).Shapes(shName).OLEFormat.Object.Text = shtext
    Next x
End Sub
[/vba]

Автор - sboy
Дата добавления - 29.08.2016 в 17:10
potapov14 Дата: Понедельник, 29.08.2016, 17:34 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy,

Да я проверил! Ваш вариант работает! спасибо!
 
Ответить
Сообщениеsboy,

Да я проверил! Ваш вариант работает! спасибо!

Автор - potapov14
Дата добавления - 29.08.2016 в 17:34
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как изменить значение TextBox (Надпись) (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!