Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передача данных с TextBox или переменной в Range
|
|||
|---|---|---|---|
|
#18+
Привет всем! Помогите мне в решении вопроса: Имеется Sheets в котором есть компонент TextBox и переменная в которую записывается значение. Необходимо эти данные поместить в таблицу, которая находиться на другом Sheets. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2005, 08:00 |
|
||
|
Передача данных с TextBox или переменной в Range
|
|||
|---|---|---|---|
|
#18+
Сдается, F1 по "object model" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2005, 14:34 |
|
||
|
Передача данных с TextBox или переменной в Range
|
|||
|---|---|---|---|
|
#18+
Вообщем вот так. For Each ItemSum In ActiveWorkbook.Worksheets Range("A" & ItemSum.Index) = ItemSum.Range("C3") Range("B" & ItemSum.Index) = ItemSum.Range("C25") Range("C" & ItemSum.Index) = ItemSum.TextBox1.Text Range("D" & ItemSum.Index) = ItemSum.Class Range("E" & ItemSum.Index) = ItemSum.sVal Range("F" & ItemSum.Index) = ItemSum.SumProv Range("G" & ItemSum.Index) = ItemSum.Range("D48") 'Range("F" & ItemSum.Index) = ItemSum.Range("C3") Next ItemSum Цикл крутит все sheets в данной книге берет нужные данные и закидывает их в данную книгу. Выходит ошибка вот на этих строках: Range("C" & ItemSum.Index) = ItemSum.TextBox1.Text Range("D" & ItemSum.Index) = ItemSum.Class Range("E" & ItemSum.Index) = ItemSum.sVal Range("F" & ItemSum.Index) = ItemSum.SumProv В справочнике я чего то не понял. Как передать значения может подскажете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2005, 15:09 |
|
||
|
Передача данных с TextBox или переменной в Range
|
|||
|---|---|---|---|
|
#18+
bokaВообщем вот так. For Each ItemSum In ActiveWorkbook.Worksheets Range("A" & ItemSum.Index) = ItemSum.Range("C3") Range("B" & ItemSum.Index) = ItemSum.Range("C25") Range("C" & ItemSum.Index) = ItemSum.TextBox1.Text Range("D" & ItemSum.Index) = ItemSum.Class Range("E" & ItemSum.Index) = ItemSum.sVal Range("F" & ItemSum.Index) = ItemSum.SumProv Range("G" & ItemSum.Index) = ItemSum.Range("D48") 'Range("F" & ItemSum.Index) = ItemSum.Range("C3") Next ItemSum Цикл крутит все sheets в данной книге берет нужные данные и закидывает их в данную книгу. А что этот код должен был делать? Объясни человеческим языком. Вообще, если хочешь записать что-то на конкретный лист, ты ДОЛЖЕН УКАЗЫВАТЬ на какой именно лист ты хочешь записывать. Например: Worksheets("SheetForResults").Range("B4").Value = Worksheets("SheetWithTextBox").Shapes("TextBox1").Text ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2005, 18:32 |
|
||
|
Передача данных с TextBox или переменной в Range
|
|||
|---|---|---|---|
|
#18+
White Owl bokaВообщем вот так. For Each ItemSum In ActiveWorkbook.Worksheets Range("A" & ItemSum.Index) = ItemSum.Range("C3") Range("B" & ItemSum.Index) = ItemSum.Range("C25") Range("C" & ItemSum.Index) = ItemSum.TextBox1.Text Range("D" & ItemSum.Index) = ItemSum.Class Range("E" & ItemSum.Index) = ItemSum.sVal Range("F" & ItemSum.Index) = ItemSum.SumProv Range("G" & ItemSum.Index) = ItemSum.Range("D48") 'Range("F" & ItemSum.Index) = ItemSum.Range("C3") Next ItemSum Цикл крутит все sheets в данной книге берет нужные данные и закидывает их в данную книгу. А что этот код должен был делать? Объясни человеческим языком. Вообще, если хочешь записать что-то на конкретный лист, ты ДОЛЖЕН УКАЗЫВАТЬ на какой именно лист ты хочешь записывать. Например: Worksheets("SheetForResults").Range("B4").Value = Worksheets("SheetWithTextBox").Shapes("TextBox1").Text Этот код перебирает все листы в данной книге и записывает определенные данные каждого листа в нужную часть таблицы. Строка записи определяется индексом листа. Процедура находится на листе с таблицей и прописана на событие CommandButton1_Click(). White Owl написал следующее: Range("C" & ItemSum.Index) = ItemSum.Shapes("TextBox1").Text выдается ошибка "Object doesn't support this property or method". Имя листа обязательно? А если у меня имена листов не постоянные и их количество тоже. Как в этом случае быть? Да, и еще как записать данные с переменной, которая находится в листах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 07:09 |
|
||
|
Передача данных с TextBox или переменной в Range
|
|||
|---|---|---|---|
|
#18+
Забыл сказать ItemSum был объявлен как: Dim ItemSum As Worksheet Если ее объявить как sheets то ItemSum.Name выдает ошибку как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 12:48 |
|
||
|
Передача данных с TextBox или переменной в Range
|
|||
|---|---|---|---|
|
#18+
bokaПроцедура находится на листе с таблицей и прописана на событие CommandButton1_Click(). Я же сказал: ты ДОЛЖЕН УКАЗЫВАТЬ на какой именно лист ты хочешь записывать! Сейчас ты нажимаешь на кнопку. Фокус остается на кнопке. Объекты чьи родители не указаны пытаются использовать в качестве родителя объект имеющий фокус. То есть у тебя ищется Range("C" & ItemSum.Index) не в листе, а у кнопки. Если сильно хочется кривой, но легкой жизни, можешь добавить в начало своего макроса команду: ActiveSheet.Activate. Это перенесет фокус с кнопки на лист. boka White Owl написал следующее: Range("C" & ItemSum.Index) = ItemSum.Shapes("TextBox1").Text выдается ошибка "Object doesn't support this property or method". Я этого не писал, вообще-то :) bokaИмя листа обязательно? В принципе нет. Можно использовать имя листа или его индекс. Можно использовать специальную переменную ActiveSheet. А лучше всего сделать себе отдельную переменную и присвоить ей ссылку на нужный лист, а потом уже использовать эту переменную Код: plaintext 1. 2. 3. 4. bokaА если у меня имена листов не постоянные и их количество тоже. Как в этом случае быть? Тогда вешаться :) Искать метод зафиксировать имена листов или их порядок в книге. Или внутри листа в какой-то ячейке писать специальный идентификатор листа и потом пробегать по всем листам в поисках нужного. Но проще все же запретить менять имена листов. bokaДа, и еще как записать данные с переменной, которая находится в листах? Чего? Что такое "переменная в листах"? Значение ячейки? ws.Range("D5").Value например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 19:27 |
|
||
|
Передача данных с TextBox или переменной в Range
|
|||
|---|---|---|---|
|
#18+
White Owl Я же сказал: ты ДОЛЖЕН УКАЗЫВАТЬ на какой именно лист ты хочешь записывать! Сейчас ты нажимаешь на кнопку. Фокус остается на кнопке. Объекты чьи родители не указаны пытаются использовать в качестве родителя объект имеющий фокус. То есть у тебя ищется Range("C" & ItemSum.Index) не в листе, а у кнопки. Почему он ищет не в листе, ведь идет цикл и перебираеться каждый лист. For Each ItemSum In ActiveWorkbook.Worksheets Range("A" & ItemSum.Index) = ItemSum.Range("C3") Range("B" & ItemSum.Index) = ItemSum.Range("C25") Range("C" & ItemSum.Index) = ItemSum.TextBox1.Text Range("D" & ItemSum.Index) = ItemSum.Class Range("E" & ItemSum.Index) = ItemSum.sVal Range("F" & ItemSum.Index) = ItemSum.SumProv Range("G" & ItemSum.Index) = ItemSum.Range("D48") 'Range("F" & ItemSum.Index) = ItemSum.Range("C3") Next ItemSum Нет данные с листа записанные в ячейках он берет нормально. White Owl boka White Owl написал следующее: Range("C" & ItemSum.Index) = ItemSum.Shapes("TextBox1").Text выдается ошибка "Object doesn't support this property or method". Я этого не писал, вообще-то :) нет это я написал на примере Worksheets("SheetForResults").Range("B4").Value = Worksheets("SheetWithTextBox").Shapes("TextBox1").Text White Owl Чего? Что такое "переменная в листах"? Значение ячейки? ws.Range("D5").Value например. White Owl я просто пишу на Делфи. А там Просто если объект находиться на форме, то он автоматически становится его родителем т.е. доступ к нему из другого модуля осуществляется sFIO = Form1.TextBox1.Text и проблем нет. А тут как можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 07:24 |
|
||
|
Передача данных с TextBox или переменной в Range
|
|||
|---|---|---|---|
|
#18+
bokaНет данные с листа записанные в ячейках он берет нормально. Да, данные с листа он берет нормально. Потому что лист источник указан. А вот лист получатель не указан. Я тебе об этом уже который день твержу! В присвоении всегда есть две части - слева от знака равенства и справа. То что справа - источник, то что слева - получатель. Ты правильно указываешь источник, но не правильно указываешь получателя. boka White Owl boka White Owl написал следующее: Range("C" & ItemSum.Index) = ItemSum.Shapes("TextBox1").Text выдается ошибка "Object doesn't support this property or method". Я этого не писал, вообще-то :) нет это я написал на примере Worksheets("SheetForResults").Range("B4").Value = Worksheets("SheetWithTextBox").Shapes("TextBox1").Text Ну! Worksheets("SheetForResults"). Видишь? Почему ты ее упорно выкидываешь? bokaWhite Owl я просто пишу на Делфи. А там Просто если объект находиться на форме, то он автоматически становится его родителем т.е. доступ к нему из другого модуля осуществляется sFIO = Form1.TextBox1.Text и проблем нет. А тут как можно? Да, тут так тоже можно. Но если проводить аналогию с твоим макросом, то должно быть что-то вроде Form2.sFIO = Form1.TextBox1.Text . Из которой ты постоянно забываешь написать Form2. Понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2005, 19:02 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33055742&tid=2186069]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 284ms |

| 0 / 0 |
