Вопрос к опытным перцам. Что в этом макросе сделано неправильно. В одном файле работает, а в другом спотыквается на следующих выражениях : вот на этом CmbPerformer.Text и на этом TextPerformer.Text , и на этом TextBoxDate. Text.. То есть, отказывается переносить текстовые значения из формы в колонтитул. Одно из которых является датой, вносимой в TextBoxDate из календаря,
Sub Тест ( ) If Sheets("отчет").Activate Then ActiveSheet.PageSetup.LeftFooter = "&""Arial Narrow,курсив""&10" + "Расчет выполнил, " & " " & CmbPerformer.Text & "____________" & TextPerformer.Text ActiveSheet.PageSetup.RightFooter = "&""Arial Narrow,курсив""&10" + "Дата складання: " & " " & TextBoxDate. Text + [" р."] End If Unload Me End Sub
Спасибо
Вопрос к опытным перцам. Что в этом макросе сделано неправильно. В одном файле работает, а в другом спотыквается на следующих выражениях : вот на этом CmbPerformer.Text и на этом TextPerformer.Text , и на этом TextBoxDate. Text.. То есть, отказывается переносить текстовые значения из формы в колонтитул. Одно из которых является датой, вносимой в TextBoxDate из календаря,
Sub Тест ( ) If Sheets("отчет").Activate Then ActiveSheet.PageSetup.LeftFooter = "&""Arial Narrow,курсив""&10" + "Расчет выполнил, " & " " & CmbPerformer.Text & "____________" & TextPerformer.Text ActiveSheet.PageSetup.RightFooter = "&""Arial Narrow,курсив""&10" + "Дата складання: " & " " & TextBoxDate. Text + [" р."] End If Unload Me End Sub
заменил и все равно не работает. Тормозит вот на этой строке ActiveSheet.PageSetup.LeftFooter = "&""Arial Narrow,курсив""&10" & "Расчет выполнил, " & " " & CmbPerformer.Text & "____________" & TextPerformer.Text . Красит ее в желтый цвет и выбрасывает предупреждение об ошибке. Что можно сделать еще?
заменил и все равно не работает. Тормозит вот на этой строке ActiveSheet.PageSetup.LeftFooter = "&""Arial Narrow,курсив""&10" & "Расчет выполнил, " & " " & CmbPerformer.Text & "____________" & TextPerformer.Text . Красит ее в желтый цвет и выбрасывает предупреждение об ошибке. Что можно сделать еще?Юзер
Юзер, без Вашего примера понять что не правильно невозможно. Ну откуда можно узнать, какие значения имеют CmbPerformer.Text и TextPerformer.Text? И где находятся эти элементы управления? На форме или на листе? Вы пишете:
Quote (Юзер)
В одном файле работает, а в другом спотыквается на следующих выражениях : вот на этом CmbPerformer.Text и на этом TextPerformer.Text , и на этом TextBoxDate. Text
Так может быть "в другом файле" просто невозможно считать эти значения?
Юзер, без Вашего примера понять что не правильно невозможно. Ну откуда можно узнать, какие значения имеют CmbPerformer.Text и TextPerformer.Text? И где находятся эти элементы управления? На форме или на листе? Вы пишете:
Quote (Юзер)
В одном файле работает, а в другом спотыквается на следующих выражениях : вот на этом CmbPerformer.Text и на этом TextPerformer.Text , и на этом TextBoxDate. Text
Так может быть "в другом файле" просто невозможно считать эти значения?Alex_ST
Alex_ST, доброго вам дня! Элементы управлени я находятся на форме. В комбобоксе и первом техтбоксе, находятся - текстовые значения, которые берутся из списка на другом листе книги, во виором текстбоксе - дата, которая берется из календаря. Пробовал установить в этом текстбоксе формат даты, все равно не переносится. Рабочий файл выслать не могу, потому что очень уж большой. Да и начальник будет ругать, за нарущение конфеденциальности, если узнает. А в примере, макрос работает, поэтому, как мне кажется, нет смысла его высылать.
Alex_ST, доброго вам дня! Элементы управлени я находятся на форме. В комбобоксе и первом техтбоксе, находятся - текстовые значения, которые берутся из списка на другом листе книги, во виором текстбоксе - дата, которая берется из календаря. Пробовал установить в этом текстбоксе формат даты, все равно не переносится. Рабочий файл выслать не могу, потому что очень уж большой. Да и начальник будет ругать, за нарущение конфеденциальности, если узнает. А в примере, макрос работает, поэтому, как мне кажется, нет смысла его высылать.Юзер
Юзер, скорее всего Вы наврали либо с кавычками при конкатенации стрингов (сцеплении строки из подстрок), либо при считывании данных из элементов управления. И ещё: Sheets("отчет").Activate - это МЕТОД, а не СВОЙСТВО. Поэтому запись If Sheets("отчет").Activate Then… не корректна. Я бы заменил её на If ActiveSheet.Name = "отчет" Then… Ну и на всякий случай чтобы проще было найти, где ошибка, сначала считал бы значения элементов управления в строковые переменные, а потом бы уж их объединял. Ну, примерно так:[vba]
Code
Sub Тест2() Dim sCmbPerformer$, sTextPerformer$, sTextBoxDate$ sCmbPerformer = Me.CmbPerformer.Text sTextPerformer = Me.TextPerformer.Text sTextBoxDate = Me.TextBoxDate.Text 'If Sheets("отчет").Activate Then If ActiveSheet.Name = "отчет" Then ActiveSheet.PageSetup.LeftFooter = "Расчет выполнил, " & sCmbPerformer & "____________" & sTextPerformer ActiveSheet.PageSetup.RightFooter = "Дата складання: " & sTextBoxDate & "[ р.]" End If Unload Me End Sub
[/vba]Если пройдёт, то потом можно будет конкатенацию делать без промежуточных переменных:[vba]
Code
Sub Тест3() If ActiveSheet.Name = "отчет" Then ActiveSheet.PageSetup.LeftFooter = "Расчет выполнил, " & CmbPerformer.Text & "____________" & TextPerformer.Text ActiveSheet.PageSetup.RightFooter = "Дата складання: " & TextBoxDate.Text + "[ р.]" End If Unload Me End Sub
[/vba]
Юзер, скорее всего Вы наврали либо с кавычками при конкатенации стрингов (сцеплении строки из подстрок), либо при считывании данных из элементов управления. И ещё: Sheets("отчет").Activate - это МЕТОД, а не СВОЙСТВО. Поэтому запись If Sheets("отчет").Activate Then… не корректна. Я бы заменил её на If ActiveSheet.Name = "отчет" Then… Ну и на всякий случай чтобы проще было найти, где ошибка, сначала считал бы значения элементов управления в строковые переменные, а потом бы уж их объединял. Ну, примерно так:[vba]
Code
Sub Тест2() Dim sCmbPerformer$, sTextPerformer$, sTextBoxDate$ sCmbPerformer = Me.CmbPerformer.Text sTextPerformer = Me.TextPerformer.Text sTextBoxDate = Me.TextBoxDate.Text 'If Sheets("отчет").Activate Then If ActiveSheet.Name = "отчет" Then ActiveSheet.PageSetup.LeftFooter = "Расчет выполнил, " & sCmbPerformer & "____________" & sTextPerformer ActiveSheet.PageSetup.RightFooter = "Дата складання: " & sTextBoxDate & "[ р.]" End If Unload Me End Sub
[/vba]Если пройдёт, то потом можно будет конкатенацию делать без промежуточных переменных:[vba]
Code
Sub Тест3() If ActiveSheet.Name = "отчет" Then ActiveSheet.PageSetup.LeftFooter = "Расчет выполнил, " & CmbPerformer.Text & "____________" & TextPerformer.Text ActiveSheet.PageSetup.RightFooter = "Дата складання: " & TextBoxDate.Text + "[ р.]" End If Unload Me End Sub
Alex_ST, Первый макрос, ругается на Me у выражении Me.CmbPerformer.Text и так далее. Попробовал заменить все Me на название формы, на которой размещены все перечисленные в макросе элементы управления, макрос срабатывает, но не переносит инфу из элементов управления в колонтитулы. Как и не переносит ее второй макрос. Хотя также срабатывает. Попробовал в примере. Оба макроса работают без проблем и быстро. По моим соображением выходит, что у варианте с рабочим файлом, инфу из формы, макрос считывает, но не вставляет ее в колонтитулы. Но может я ошибаюсь.
Alex_ST, Первый макрос, ругается на Me у выражении Me.CmbPerformer.Text и так далее. Попробовал заменить все Me на название формы, на которой размещены все перечисленные в макросе элементы управления, макрос срабатывает, но не переносит инфу из элементов управления в колонтитулы. Как и не переносит ее второй макрос. Хотя также срабатывает. Попробовал в примере. Оба макроса работают без проблем и быстро. По моим соображением выходит, что у варианте с рабочим файлом, инфу из формы, макрос считывает, но не вставляет ее в колонтитулы. Но может я ошибаюсь.Юзер
Сообщение отредактировал Юзер - Четверг, 26.04.2012, 12:45
Первый макрос, ругается на Me у выражении Me.CmbPerformer.Text
Это как это? Где у вас код-то размещён? Я, судя по Unload Me, решил, что код расположен в модуле формы. И на этой же форме - элементы управления. А если вы код запихнули в модуль листа/книги/стандартный модуль, то работать и не будет. Тогда без примера не понять. Ведь никому не не интересна ваша таблица целиком. Создайте новую пустую книгу, в ней форму с этими тремя элементами управления. В модуле формы - код. Тестируйте. Не получится - выложите сюда.
Quote (Юзер)
Первый макрос, ругается на Me у выражении Me.CmbPerformer.Text
Это как это? Где у вас код-то размещён? Я, судя по Unload Me, решил, что код расположен в модуле формы. И на этой же форме - элементы управления. А если вы код запихнули в модуль листа/книги/стандартный модуль, то работать и не будет. Тогда без примера не понять. Ведь никому не не интересна ваша таблица целиком. Создайте новую пустую книгу, в ней форму с этими тремя элементами управления. В модуле формы - код. Тестируйте. Не получится - выложите сюда.Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Четверг, 26.04.2012, 14:48
Игорь, а на форуме можно сколько угодно раз регистрироваться под разными никами? Типа - нагадил под одним, перешифровался и дои себе спокойно форум дальше. Пост Андрея не такой уж неотносящийся. Надо предупредить остальных форумчан, с кем имеют дело. ИМХО. И очень даже относится к теме, что эта мразь Муля пишет гадости о форумчанах на разных форумах по Эксу, а потом у них же клянчит помощь.
Игорь, а на форуме можно сколько угодно раз регистрироваться под разными никами? Типа - нагадил под одним, перешифровался и дои себе спокойно форум дальше. Пост Андрея не такой уж неотносящийся. Надо предупредить остальных форумчан, с кем имеют дело. ИМХО. И очень даже относится к теме, что эта мразь Муля пишет гадости о форумчанах на разных форумах по Эксу, а потом у них же клянчит помощь.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Сообщение отредактировал KuklP - Пятница, 27.04.2012, 06:10
Сергей, а я дал повисеть сообщениям почти сутки, так что все уже успели прочитать, и каждый для себя сделать соответствующие выводы :). P.S. Последние три поста удалю вечером.
Сергей, а я дал повисеть сообщениям почти сутки, так что все уже успели прочитать, и каждый для себя сделать соответствующие выводы :). P.S. Последние три поста удалю вечером.kim
Сцяна - гэта тая ж прыступка. Проста трэба дарасьці да яе.
А чего все расшумелись? Когда такую же ссылку на планете Глеоду выкладывали - никто не возмущался
Тема закрыта, Глеод забанен, в правила внесены изменения в части запрета на создание нескольких учетных записей (пользователей-клонов) пункт 5n
А чего все расшумелись? Когда такую же ссылку на планете Глеоду выкладывали - никто не возмущался
Тема закрыта, Глеод забанен, в правила внесены изменения в части запрета на создание нескольких учетных записей (пользователей-клонов) пункт 5nSerge_007