Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Случайные значения с константой при открытии книги
 
Спасибо, отличный вариант!
Случайные значения с константой при открытии книги
 
Добрый день.

Моя цель: открываю книгу и столбец А, первые 100 строк заполняются случайным выражением+константой. Если возможно, то при запуске спрашивается, сколько мне нужно строк таких сгенерировать.

Пример результата:
213@user
587@user

Примерная реализация:
=СЛЧИС()*1000@user
В ячеке выставляю формат без дробной части. Часть @user всегда одинаковая. Как вариант я могу ее во второй столбец вставить и в первом получать случайные числа. Но так как мне нужно копировать полученные результаты, то в буфере у меня будет пробел между данными, который дополнительно приходится удалять.

Какие решения могут быть для поставленной задачи, чтобы в итоге открывая книгу, я получал сгенерированные данные, которые можно было легко скопировать (или даже сразу автокопирование в буфер, если такое возможно через макросы) и использовать в дальнейшем из буфера готовый результат?
Можно ли задать размер таблицы в пикселах?
 
Хорошо, смотрите, вот пример файла.
У нас несколько таблиц, в них небольшие прайсы. Как видно из первого поста, мы используем OneDrive, чтобы таблица подгружалась на сайт. Как видите, размеры таблиц разные, поэтому на сайте получается "зигзагом" прайс (какая-то больше, какая-то меньше). Первый вариант был, чтобы сам скрипт выводил, просто масштабируя (как картинки подгоняются под размеры).
Второй вариант как раз о том, чтобы сделать таблицу-шаблон определенных размеров, как это можно в Ворде. Т.е. у нас на сайте 600 пикселей на странице. Мы и хотим, чтобы как-то в Экселе указать эти 600 пикселей. И за ними либо не дает редактировать, либо визуально как-то сетка отделяет. Т.е. ячеек может быть как две, так и пять в эту ширину, но пространство между ними будет распределятся именно, чтобы влезть в этот размер. Нас даже устроит вручную подгонять размеры (мышкой как надо), но для этого нужно как-то увидеть в Экселе эту границу, дальше которой нельзя заступать.



http://clck.ru/97DNj
- сравните фасадные работы и мойку и очистку и поймете. Человек прайсы заполнил, но размеры таблиц разные. Хотелось бы как-то одного размера их делать. Понимаю, что можно сидеть на глаз подгонять, но все же хотелось бы "правильный" способ.
Изменено: Tema Zosin - 08.03.2014 11:45:53
Можно ли задать размер таблицы в пикселах?
 
У нас на сайте используется вставка таблицы из OneDrive. Как видно из скриншота, размер таблицы не совпадает с выделенной областью на сайте. Если при встраивании указать больший размер пикселей для таблицы, то в том месте, где сейчас пусто, будут пустые ячейки.

Нам нужно, чтобы размер таблицы выводился в полную ширину. Я вижу два варианта:
1. Указать масштабирование в строчке кода для встраивания, чтобы таблица сама под заданный размер масштабировалась (как картинка?). Интерфейс OneDrive не предоставляет такую опцию. Возможно, кто-то тут знает, какой параметр отвечает и подскажет.
Пример кода java и iframe (подойдет любой).
2. Создать таблицу, в которой выделить разрешенный размер ширины для таблицы (простая линия или блокировка за пределами), чтобы при создании и заполнении ячеек можно было подгонять под этот размер. Вариант объединения в одну ячейку и задание ей размера не подходит, т.к. нужны именно ячейки, а не просто оболочка (так можно было использовать и Word, но он не подходит).

Второй пункт чисто по экселю. Если бы я написал только второй пункт, то тогда были бы вопросы: для чего, где это, поподробнее и т.п
Форсированное форматирование ячеек
 
Выставил форматирование ячеек - шрифт и т.п. Если вставляю неформатированный текст или пишу сам - все ок. Если вставляю с другого документа/страницы форматированный (например цветной текст с интернет страницы), то вставляется именно форматированный (цветной, размер и т.п.).
Как настроить, чтобы через обычную вставку (ctrl + v) вставлялся текст и формат был, который я задал ячейкам?

Вариант использовать вставку неформатированного текста не интересен (что через правую кнопку, что через пунто свитчер). Интересно, есть ли именно возможность форсировать формат.
Перестал работать макрос. Как понять в чем проблема?
 
Цитата
Вы же, судя по этому, тоже не очень внимательно мой ответ прочитали, не так ли? И не задали вопрос - "Почему же не надо, ведь раньше с ним все работало?"
Все верно. Если все работало, а я ничего не менял, то на скрипт последнее подозрение. Было уже так, что в самой таблице включается фильтр экселевский и обработка идет не так (не конкретно этого скрипта). Простой пример: сделал на две строчки текущую дату, кликаю дважды и дата до последней строчки выставляется эта. Если включен фильтр, то вниз на двойной клик ничего не проставляется. А это я тоже не сразу понял. Внизу базы куча строчек без даты, вверху какое-то значение из первых скрыто из-за фильтра, что не меняет низ базы никак, а эксель не хочет проставлять на двойной клик. Задумка непонятна. Думал на подобный "баг", интересовался впервую очередь на такие возможности.
Цитата
Посмотрите логику кода: цикл построен так, что просматривает строки от самой нижней до второй. Пусть будет от 10 до 2. Если строка 10 содержит значение, которое уже есть во 2-ой - она удаляется. Счетчик цикла® уменьшается на 1(next r). А Вы его принудительно зачем-то увеличиваете на 1(r = r + 1). Что получаем? Правильно, топчемся на месте. Топчемся до тех пор пока условие не станет ложным и кодом не пропустится Ваше никому не нужное увеличение счетчика цикла.
В этом и загадка. Почему после 5-7к строчки он перестал работать, зашкаливать стал?
Цитата
А вот насчет вопроса ikki по поводу книги/листа - я с ним согласен, а с Вашим ответом "Мне казалось, я написал, что два года работал и все было ок. Головой не ударялся." очень даже нет,
Вы пришли в магазин сдать ломаный тостер в ремонт и рассказываете: готовил хлеб, он не выбросил, тот подгорел, тостер не работает теперь. Кроме как хлеб ничего не готовил, всегда стоял на кухне. Вы дали всю инфу. Но к вам продолжают приставать "может вы его в ванную уронили и его замкнуло? или может вы в него не хлеб пихнули, а носки сушили?". Я написал сразу, что ничего не менял, это и означает, что ничего не менял. Я понимаю, что множество людей кто пишет на форумах не дают инфы или пишут одно, а на деле другое. В моем случае я выдал сразу все, что мог. И фраза "может другого листа" (про другую книгу вообще не понял к чему, типа я запустил другую таблицу без макроса и он не работает? это совсем глупость было бы тут спрашивать совета) после моей "ничего не менял" как шаблонный вопрос после моего подробного рассказа. Если вы согласны про глупые вопросы от продавца в примере с тостером, то и тут поймете. Если нет, то - ок. Я работал и продавцом и инженером сервиса и клиентом/покупателем был и все это проходил. Для себя извлек уже давно, что лишняя ненужная информация только загружает мозг и тратит время. Те, кто это понимаю, замечают карьерный рост.
Мне никогда не быть службой поддержки, потому что я просто не буду выслушивать людей и их "не работает" без какой-либо попытки описать подробности.
Цитата
И так же не согласен, что мы для помощи Вам должны рисовать Ваши данные,
С чем не согласен? Включи же логику! Ну дал бы я табличку с макросом и строчками с цифрами, которые перед этим бы автопроставлением поставил бы, и зачем это? Я описал все, что делал в первом посте. Свой файл дать не могу. А давать новосозданный - смысл? Я же написал, что изначально грешил на фильтры, спросил про логи, выложил скрипт, чтобы проверили. Вы же нашли ошибку без моего файла? Уберите предрассудки и поймите, что я минимизировал свое время на эту задачу. А если бы вы не пытались спорить и доказать, что я не по шаблону все выполнил, а наоборот бы подхватили мою идею минимальных затрат, то у нас бы вышло быстрое решение! Все зависит от подхода! Я конечно понимаю, что когда вам за 30 и амбиций уже нет, все шаблонно привычно, то менять ничего не хочется. Те кто хочет - двигаются дальше, кто нет - остаются на месте. Это простая психология со второго курса. Просто вы не поняли, что я изначально пытался донести, т.к. большинство людей доносят только "не работает". Я вас прекрасно понимаю и не осуждаю. Но и меня попытайтесь понять. Это как если к вам придет президент, и вы будете ему "будь как дома, расслабься", а он будет официальными высокопочтенными "замашками" пользоваться, да создавать такую атмосферу. Я это к тому, что пришел "сэр" (интеллигент из великобритании) и говорит, что сломался компьютер, а вы - мистер - почините, пожалуйста. Вы ему: "Генри, релекс, все гуд, что не так?" и пошел стандартный разговор. А если к вам приходит ваш друг-сисадмин Квейк3всеДетствоВместеГоняли? И скажет: обновил убунту, tcp-пакеты не доходят, думаешь фаервол неправильно настроил?"  и вы же ему ответите нормально, а не будете "сэр, прошу поподробнее, убунту это ОС, может вы имели ввиду Вин, ведь вероятнее всего у вас просто тема рабочего стола убунту, а фаервол это для вас что?". Я хочу сказать, что принимая всех как новичков, которые шаблонно не дают инфы, вы не видите перед собой того, кто старается минимизировать лишние вопросы.
Цитата
"головой не ударялся"
Бросьте, мистер модератор (простите, если это оскорбительно, я не знаю, как в России применить фразу "Мистер Х"), но вы оценили мою фразу неверно. Я знаю, что тут у нас в России очень многие злые, коррумпированные и эгоистичные и скорее всего фразу вы расценили как "головой чтоли ударился?", но в моем случае шутку я направлял на себя "кажется головой не ударялся", показывая тем самым мысль о том, что ничего передать не забыл. Другими словами: Нет, ничего не менялось, ничего не менял, все проверял, изменений не вносил, на голову ничего не падало, уверен, что амнезии на этот счет нет, все что выше написал - по моей памяти верно.


Спасибо еще раз за код.
Перестал работать макрос. Как понять в чем проблема?
 
Цитата
Цитата
Ничего Вы не спрашивали - Вы написали:
или это такая новая форма вопроса?
Не нужно выдирать из контекста и защищать людей, которые не удосужились прочитать мой пост.
Цитата
Есть ли какая-то консоль, где я могу просмотреть лог работы скрипта, чтобы выложить сюда, может подскажите
Цитата
Надеюсь можно как-то через логи понять, что не так.


Цитата
Я просто взял Ваш код и поправил его таким образом, чтобы он РАБОТАЛ
Значит в нем все же ошибку нашли?

Очень странно, т.к. до НГ у меня работало все при этом же количестве строк. После НГ - перестало.

Цитата
Вы на все остальные вопросы участников форума ответили так, будто Вас тут оскорбили смертно.
Не нужно впадать в крайность. Я в отличии от большинства людей, что пишут в панике, постарался выдать всю информацию, которая в моей компетенции в первом посте. Если у вас люди сразу не читая задают стандартные вопросы (на автомате, т.к. для большинства это актуально), то не нужно обижаться, что я подчеркнул, что ответ есть в первом посте.

Цитата
все равно без знака вопроса
Там хитрое построение предложения, состояющее из вопросительного и утвердительного. Не уверен, что многие тут сидящие так хорошо знают русские сложные правила, чтобы их соблюдать. Мне после английского еще сложнее обратно адаптироваться под структуру предложений. Стараюсь писать как можно правильнее. Сильне не судите.

The_Prist, огромное спасибо за скрипт. Данный скрипт у меня работает. Не могу сказать корректно ли для моих конкретных требований, но по крайней мере удаляет, в отличии от моего. Мне самому сложно сразу ответить, все ли верно. И сложно разом объяснить все нюансы, т.к. разные ситуации бывают.
Хотя, если поняли в чем проблема была, был бы рад услышать, т.к. не хотелось бы повторения ситуации. Но как понял, проблема в скрипте.

VBA никогда не изучал, только баловался в школе. Больше С++. Сейчас другим занимаюсь. Познания нулевые (хотя, в отличии от большинства, понять могу, особенно, если командам незнакомым описание найду), поэтому ответ вполне устроит простыми словами.
Перестал работать макрос. Как понять в чем проблема?
 
Цитата

и где ваши логи?  :D
Я же спросил где их взять, чтобы выложить.
Цитата

не ждёте ли вы результатов его работы в другой книге или не стал ли лист с данными не первым?
Нет. Мне казалось, я написал, что два года работал и все было ок. Головой не ударялся.
Цитата
мде... а заменить данные на "неконфиденциальные" нельзя?
Я выложил скрипт, вы можете подставить свои данные. Только в чем смысл? Если все работало, и перестало. Может что-то сбилось.

Цитата
Что по мне, так слишком много лишнего. Цикл построен уже правильно - зачем менять значение переменной r?
А vsego я бы определял несколько иначе. В общем, мой вариант:
А в вашем варианте удаление будет считать, что верхние данные в приоритете от нижних? Мне нужно не простое удаление случайных повторов, а именно впервую очередь снизу, т.к. сверху уже могут быть заполненные ячейки, и когда я снизу добавляю новые данные, они иногда повторяются и скрипт тер повторы.
Перестал работать макрос. Как понять в чем проблема?
 
Код
Sub Óäàëåíèå_ïîâòîðîâ()
Dim iz As Worksheet
Set iz = ThisWorkbook.Worksheets(1)
vsego = iz.Cells(1, 1).CurrentRegion.Rows.count
For r = vsego To 2 Step -1
If WorksheetFunction.CountIf(Range(iz.Cells(2, 1), iz.Cells(vsego, 1)), iz.Cells(r, 1)) > 1 Then
iz.Activate
iz.Rows(r).Delete Shift:=xlUp
r = r + 1
vsego = vsego - 1
End If
Next r
End Sub

Данный код работал больше двух лет. После НГ сев за работу обнаружил, что повторы не удаляются. В чем проблема понять не могу. Пробовал взять файл в бекапа, на нем так же не работает ничего. Пробовал поставить на виртуалке новый эксель - так же не работает. Загадка. Сейчас в базе 7к строк. Думал, может ограничение на количество строк. Удалил все до 2к (не строки удалял, а очистил содержимое), вроде как стал работать скрипт. Но как-то криво.
Есть ли какая-то консоль, где я могу просмотреть лог работы скрипта, чтобы выложить сюда, может подскажите, что не так и почему не работает.
При запуске скрипта курсор переключается в режим "ожидания", т.е. скрипт работает. Но ничего не удаляет. Файл скинуть не могу из-за конфиденциальности данных. Надеюсь можно как-то через логи понять, что не так.
Страницы: 1
Наверх