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

Вход

Регистрация

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

 

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

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

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

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

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

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

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(16Kb)


платная помощь:
ЯД: 410012595572239; WM: 311017577133
buchlotnik@mail.ru


Сообщение отредактировал 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
Группа: Друзья
Ранг: Старожил
Сообщений: 1348
Репутация: 534 ±
Замечаний: 0% ±

начинал с Excel 4.0...
или как-то так:
[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
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

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

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

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

Автор - potapov14
Дата добавления - 29.08.2016 в 16:48
sboy Дата: Понедельник, 29.08.2016, 17:10 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 595
Репутация: 155 ±
Замечаний: 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]
 
Ответить
СообщениеДобрый день.
Попробуйте так
[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
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy,

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

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

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

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