Здравствуйте! t = Substitute("Ваня1","1","") в макросе даёт ошибку «ReferenceError: Substitute is not defined» вместо ожидаемого «Ваня». При этом будучи подставленной в ячейку она вполне выдаёт искомого Ваню после замены «,» на «;»: =ПОДСТАВИТЬ("Ваня1";"1";""). Одно время в макросе не получалось ввести первую зпт, при смене фокуса она сама менялась на «;». Но эта невозможность как-то сама прошла после пляски с бубном. Прошу помощи сообщества.
Здравствуйте! t = Substitute("Ваня1","1","") в макросе даёт ошибку «ReferenceError: Substitute is not defined» вместо ожидаемого «Ваня». При этом будучи подставленной в ячейку она вполне выдаёт искомого Ваню после замены «,» на «;»: =ПОДСТАВИТЬ("Ваня1";"1";""). Одно время в макросе не получалось ввести первую зпт, при смене фокуса она сама менялась на «;». Но эта невозможность как-то сама прошла после пляски с бубном. Прошу помощи сообщества.pentium1024
"Макрос в ГТ" называется скриптом. Встроенной функции substitute в скриптах нету (если только вы сами ее предварительно не написали или не подключили какую-то готовую библиотеку с ней) - поэтому и ошибка. Но есть функция replace, используемая для аналогичных целей: [vba]
Код
function myFunction() { var str = "Ваня1"; Browser.msgBox( str.replace("1","") ); }
[/vba]
"Макрос в ГТ" называется скриптом. Встроенной функции substitute в скриптах нету (если только вы сами ее предварительно не написали или не подключили какую-то готовую библиотеку с ней) - поэтому и ошибка. Но есть функция replace, используемая для аналогичных целей: [vba]
Код
function myFunction() { var str = "Ваня1"; Browser.msgBox( str.replace("1","") ); }
Лирическое отступление: Строго говоря, макросы VBA - это тоже скрипты Название же "макрос" закрепилось за ними ещё с тех времен, когда VBA в приложениях офиса ещё не было, а в Excel был встроен макроязык программирования с макрофункциями и листами макросов, на которых эти макрофункции и использовались У ГТ нет такой давней истории, поэтому их "макросы" сразу приняли правильное название, но сказать "макрос в ГТ" по корректности сути, ничем не отличается от "макрос в VBA") [/offtop]
Лирическое отступление: Строго говоря, макросы VBA - это тоже скрипты Название же "макрос" закрепилось за ними ещё с тех времен, когда VBA в приложениях офиса ещё не было, а в Excel был встроен макроязык программирования с макрофункциями и листами макросов, на которых эти макрофункции и использовались У ГТ нет такой давней истории, поэтому их "макросы" сразу приняли правильное название, но сказать "макрос в ГТ" по корректности сути, ничем не отличается от "макрос в VBA") [/offtop]Serge_007
[offtop]Серж, целиком и полностью согласен. Но в данном конкретном случае, это вызвало путаницу среди профессионалов, из-за чего был задан уточняющий вопрос от aliramora191. Я хоть и молчал, но тоже имел некоторые сомнения, особенно учитывая, что товарищ ТС (в дополнение к "макросам") пытался поместить в скрипт идентификатор табличной функции - что, как известно, возможно в Excel, но, к великому сожалению, пока невозможно в ГТ (а пора бы уже им прикрутить столь полезную фичу!).
Поэтому, конечно, вопрошающих, особенно не столь искушенных, желательно сразу приучать к правильной терминологии. Мы, конечно, догадаемся, что за фразой "у меня тут формула в облачном Excel" (даже часто Exel :)) скрывается ГТ (хотя и реально облачный Excel 365 в природе существует), а также, что бухгалтер, говоря "у меня тут сводная таблица", имеет в виду совсем не сводную таблицу как специфический объект Excel. Но всяко будет лучше для всех - сразу говорить на одном языке.
[offtop]Серж, целиком и полностью согласен. Но в данном конкретном случае, это вызвало путаницу среди профессионалов, из-за чего был задан уточняющий вопрос от aliramora191. Я хоть и молчал, но тоже имел некоторые сомнения, особенно учитывая, что товарищ ТС (в дополнение к "макросам") пытался поместить в скрипт идентификатор табличной функции - что, как известно, возможно в Excel, но, к великому сожалению, пока невозможно в ГТ (а пора бы уже им прикрутить столь полезную фичу!).
Поэтому, конечно, вопрошающих, особенно не столь искушенных, желательно сразу приучать к правильной терминологии. Мы, конечно, догадаемся, что за фразой "у меня тут формула в облачном Excel" (даже часто Exel :)) скрывается ГТ (хотя и реально облачный Excel 365 в природе существует), а также, что бухгалтер, говоря "у меня тут сводная таблица", имеет в виду совсем не сводную таблицу как специфический объект Excel. Но всяко будет лучше для всех - сразу говорить на одном языке.Gustav
желательно сразу приучать к правильной терминологии
Полностью согласен! Но это бесполезно, к сожалению... Более того, люди ещё и обижаются, когда им говоришь, что ВПР() - это не формула, а функция, что Sheets - это совсем не вкладки или страницы, что в русской локали Excel нет клеток и колонок и т.д. Называют эти уточнения - придирками [/offtop] [p.s.]"неверно" пишется слитно...
желательно сразу приучать к правильной терминологии
Полностью согласен! Но это бесполезно, к сожалению... Более того, люди ещё и обижаются, когда им говоришь, что ВПР() - это не формула, а функция, что Sheets - это совсем не вкладки или страницы, что в русской локали Excel нет клеток и колонок и т.д. Называют эти уточнения - придирками [/offtop] [p.s.]"неверно" пишется слитно...Serge_007
Serge_007, всяко пишется, и слитно, и раздельно. В данном случае написано раздельно верно. Правило таково: если между «не» и наречием можно вставить слово («не совсем верно»), то написание раздельно.
Serge_007, всяко пишется, и слитно, и раздельно. В данном случае написано раздельно верно. Правило таково: если между «не» и наречием можно вставить слово («не совсем верно»), то написание раздельно.pentium1024
Нет, в данном случае пишется именно слитно, иначе я бы не обратил на ошибку Ваше внимание
Цитата
Материал подготовлен совместно с учителем высшей категории Кучминой Надеждой Владимировной. Опыт работы учителем русского языка и литературы - 27 лет.
Написание наречий и прилагательных с “не” вызывает множество затруднений, так что ответ на вопрос, как правильно пишется слово неверно, слитно или раздельно, не будет слишком простым. В данном случае правописание будет зависеть от того, можно ли заменить слово синонимом и есть ли противопоставление. Правило “неверно” (наличие синонима) Так, в большинстве случаев наречие или краткое прилагательное "неверно" пишется слитно по общему правилу, когда его можно заменить синонимом “ошибочно”. Чтобы понять, что имеется в виду, рассмотрим несколько примеров.
Примеры: Из-за того, что адрес на письме был указан неверно, оно так и не дошло до дедушки. Неверно поставленный диагноз оказался для больного роковым: он умер той же ночью. Неверно высказанная мысль – причина многих конфликтов. Неверно это ваше утверждение.
Правило “не верно” (наличие противопоставления с союзом “а”) Если же в предложении четко прослеживается противопоставление, то есть имеется союз “а”, то наречие или краткое прилагательноес “не” пишется раздельно – не верно.
Примеры: Его утверждение было не верно, а ошибочно, чему имелись убедительные доказательства. Чтобы убедиться, что так поступать не верно, а дурно, он проверил все на своем опыте. Ложь во спасение не верно, а плохо.
Нет, в данном случае пишется именно слитно, иначе я бы не обратил на ошибку Ваше внимание
Цитата
Материал подготовлен совместно с учителем высшей категории Кучминой Надеждой Владимировной. Опыт работы учителем русского языка и литературы - 27 лет.
Написание наречий и прилагательных с “не” вызывает множество затруднений, так что ответ на вопрос, как правильно пишется слово неверно, слитно или раздельно, не будет слишком простым. В данном случае правописание будет зависеть от того, можно ли заменить слово синонимом и есть ли противопоставление. Правило “неверно” (наличие синонима) Так, в большинстве случаев наречие или краткое прилагательное "неверно" пишется слитно по общему правилу, когда его можно заменить синонимом “ошибочно”. Чтобы понять, что имеется в виду, рассмотрим несколько примеров.
Примеры: Из-за того, что адрес на письме был указан неверно, оно так и не дошло до дедушки. Неверно поставленный диагноз оказался для больного роковым: он умер той же ночью. Неверно высказанная мысль – причина многих конфликтов. Неверно это ваше утверждение.
Правило “не верно” (наличие противопоставления с союзом “а”) Если же в предложении четко прослеживается противопоставление, то есть имеется союз “а”, то наречие или краткое прилагательноес “не” пишется раздельно – не верно.
Примеры: Его утверждение было не верно, а ошибочно, чему имелись убедительные доказательства. Чтобы убедиться, что так поступать не верно, а дурно, он проверил все на своем опыте. Ложь во спасение не верно, а плохо.
Serge_007, уж не хотите ли Вы сказать, что перестроение второй части предложения (например, дописывание в самом конце «, но ошибочно») меняет слова («неверно» на «не» и «верно») в первой? Это невозможно. Это невозможное вмешательство потусторонних сил.
Pelena, Serge_007, спасибо за грамматическую беседу. Как всегда и как везде в нынешнее время, остаёмся со своими правилами и убеждениями.
Serge_007, уж не хотите ли Вы сказать, что перестроение второй части предложения (например, дописывание в самом конце «, но ошибочно») меняет слова («неверно» на «не» и «верно») в первой? Это невозможно. Это невозможное вмешательство потусторонних сил.
Pelena, Serge_007, спасибо за грамматическую беседу. Как всегда и как везде в нынешнее время, остаёмся со своими правилами и убеждениями.pentium1024
не хотите ли Вы сказать, что перестроение второй части предложения (например, дописывание в самом конце «, но ошибочно») меняет слова («неверно» на «не» и «верно») в первой?
Вы путаете слово "неверно" со словосочетанием "не верно". Слово всегда пишется слитно, а словосочетание - всегда раздельно. Слово применяется в утвердительных предложениях, а словосочетание - в предложениях с противопоставлениями
Свои правила и убеждения могут быть у человека только для внутреннего применения Например, как бы Вы ни были убеждены в том, что завтра Вам, каждый из встретившихся на улице людей, подарит по миллиону долларов - этого не произойдет, потому что у людей есть правило - не дарить посторонним по ляму баксов ежедневно
Не помню, конечно Функций листа под две тысячи где-то, их сложно даже просто все знать наизусть, не говоря уж о том, что бы помнить, какие из них в VBA недоступны Попробуйте в VBE сами посмотреть Зайдите в коллекцию WorksheetFunction и полистайте При беглом просмотре я не увидел, например функций
не хотите ли Вы сказать, что перестроение второй части предложения (например, дописывание в самом конце «, но ошибочно») меняет слова («неверно» на «не» и «верно») в первой?
Вы путаете слово "неверно" со словосочетанием "не верно". Слово всегда пишется слитно, а словосочетание - всегда раздельно. Слово применяется в утвердительных предложениях, а словосочетание - в предложениях с противопоставлениями
Свои правила и убеждения могут быть у человека только для внутреннего применения Например, как бы Вы ни были убеждены в том, что завтра Вам, каждый из встретившихся на улице людей, подарит по миллиону долларов - этого не произойдет, потому что у людей есть правило - не дарить посторонним по ляму баксов ежедневно
Не помню, конечно Функций листа под две тысячи где-то, их сложно даже просто все знать наизусть, не говоря уж о том, что бы помнить, какие из них в VBA недоступны Попробуйте в VBE сами посмотреть Зайдите в коллекцию WorksheetFunction и полистайте При беглом просмотре я не увидел, например функций
WorksheetFunction, в частности, не включает те расхожие функции, которые изначально есть и в самом VBA (по наследству от базового VB), например, строчные Left, Right и т.п. И, кстати - DateDiff (видимо, поэтому РАЗНДАТ и нет в WF).
НО! У нас же есть замечательный метод Application.Evaluate (см. обсуждение по ссылке в моей цитате ниже):
Любую функцию можно заплести в код VBA через метод Evaluate: ? Application.Evaluate("=DATEDIF(DATE(2001,6,1),DATE(2002,8,15),""D"")") 440
что соответствует формуле в ячейке:
=РАЗНДАТ(ДАТА(2001;6;1);ДАТА(2002;8;15);"D")
И выше (в сообщении № 8 текущей темы) я, сетуя на отсутствие на данный момент у Гугла соответствующих инструментов, в первую очередь, думал об Evaluate (и только во вторую - о WorksheetFunction ).
Причем, комбинируя текстовые аргументы Evaluate с настоящим VBA, можно в компактном виде проделывать достаточно сложные вычисления: Вставка формулы с учётом изменения адреса
WorksheetFunction, в частности, не включает те расхожие функции, которые изначально есть и в самом VBA (по наследству от базового VB), например, строчные Left, Right и т.п. И, кстати - DateDiff (видимо, поэтому РАЗНДАТ и нет в WF).
НО! У нас же есть замечательный метод Application.Evaluate (см. обсуждение по ссылке в моей цитате ниже):
Любую функцию можно заплести в код VBA через метод Evaluate: ? Application.Evaluate("=DATEDIF(DATE(2001,6,1),DATE(2002,8,15),""D"")") 440
что соответствует формуле в ячейке:
=РАЗНДАТ(ДАТА(2001;6;1);ДАТА(2002;8;15);"D")
И выше (в сообщении № 8 текущей темы) я, сетуя на отсутствие на данный момент у Гугла соответствующих инструментов, в первую очередь, думал об Evaluate (и только во вторую - о WorksheetFunction ).