Раньше всегда посылал рабочие книги по почте используя макросы из этой темы: http://www.planetaexcel.ru/tip.php?aid=156 Однако, сейчас появилась необходимость отправлять диапазон ячеек(то есть отправлять не книгу, а диапазон ячеек из которого состоит таблица), прошу вашей помощи. То есть в письме хочется видеть таблицу, а не вложенный файл.
У меня такая проблема, я считаю итог по каждой группе инструментов и эти значения находятся постоянно в разных ячейках, что заметно затрудняет работу с ячейками С3-С4-С5, приходится постоянно исправлять формулы. Может быть есть какой-то способ, чтобы это можно было бы избежать? (пример прилагается)
У меня есть диапазон (100,60) и в нем много чисел, которые содержат более 15 знаков после запятой, а мне надо получить из них значения. Мне кажется, самое просто это во всех ячейках диапазона оставлять только первые 10 чисел, а остальное удалять. Хотелось бы решение сразу на весь диапазон :)
У меня есть даты в формате 20120228, но хотелось бы их перевести в формат 2012.02.28, одним словом из общего в числовой. Желательно было бы это через VBA сделать, хочется добавить в макрос, но можно и формулой.
Я получаю данные через DDE и они приходят в формате "общий" и сталкиваюсь с такой проблемой, что числа 3,12 и т.д. приходят в виде дат "40421", проблема не решается добавлением новых столбцов или изменением формата ячеек. Возможно кто-то может подсказать макрос, который в диапазоне мог бы пересчитывать такие "40421" в нормальные значения "3,12".
Сегодня Excel выдал критическую ошибку и перезапустился, после чего все макросы, которые до этого работали без ошибок начали выдавать ошибку 400. Кто-то сталкивался с подобной ситуацией? Как это можно вылечить?
Вопрос довольно простой, есть большой отчет, с форматированием, хочу вставить пустые ячейки и значения в них. В пятницу вечером не могу сообразить, что может быть не так в простом макросе, вставляю ячейки по условию первого столбца. Но есть одно НО, закрашенная ячейка является объединенной (просьба не бить). Очень не хочется возиться, чтобы сделать unmerge, потом искать значения и снова объединять их...
For i = 1 To 30 If Cells(i, 1).Interior.Color = RGB(220, 230, 241) Then Range(Cells(i, 1), Cells(i, 3)).Insert Shift:=xlDown Range(Cells(i, 1), Cells(i, 3)).ClearFormats i = i + 1 End If Next i
Всегда переносил данные через обычную формулу Sheets("").Range("").Value = "='[тест.xls]Лист'!Ячейка" Однако появилась необходимость при переносе сохранять форматирование, никто не подскажет устойчивую конструкцию для переноса данных с сохранением форматирования? Переносится примерно 10 000 ячеек. Перенос осуществляется из открытых файлов.
Не так давно поиск и перенос значений между книгами и листами перестал вызывать у меня затруднения, однако сейчас столкнулся с проблемой, как переносить и пересчитывать значения после выгрузки из 1С. Пример в файле, вроде бы там все довольно понятно. Могу дать любые пояснения по файлу.
У меня вызывает затруднения пересчет, с переносом и поиском трудностей вроде бы нет. Сейчас реализую сложным методом переношу по диапазонам до "валюта актива" в разные диапазоны на другом листе, потом удаляю все кроме "Валюта актива" и "Прочие расходы" и уже тогда пересчитываю. Но это довольно запутано для меня.
У меня есть две обыкновенные таблицы на одном листе, так сказать summary по всему файлу.
Первая меняется от 15 до 40 строк, смысл такой, что хочу сделать некоторые преобразования по столбцу H второй таблицы, а для того, чтобы не трогать первую, хочу найти начало второй таблички. В столбце H стоит значение "итоговое значение", поэтому пытаюсь найти его через строки, например, cells(i,8) и если значение равно "итоговое значение", тогда первой строке новой таблицы присвоить это значение i... curr_row = r.Row(i)
не знаю, как это правильно реализовать, возможно через операторы do loop, но я никогда не сталкивался, поэтому пока у меня не получается. Если у кого есть возможность, то прошу помочь)
У меня такой вопрос, иногда(раз в две недели) меняется структура сводной таблице на листе "итоги", я её удаляю макросом: ActiveSheet.PivotTables("PivotTable1").PivotSelect "", xlDataAndLabel, True Selection.ClearContents Однако, при создании новой таблицы на этом листе, я не могу воспользоваться именем "PivotTable1", а доступно уже только следующее "PivotTable2". При создании таблицы пользуюсь: ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Table1", Version:=xlPivotTableVersion16).CreatePivotTable _ TableDestination:="итоги!R3C1", TableName:= _ "PivotTable2", DefaultVersion:=xlPivotTableVersion16
Появилась задача отформатировать несколько практически одинаковых файлов, только вот форматирование попросили сделать извращенное, честно говоря не понял, как получить это с помощью форматирования.
Сейчас я делаю это руками, через CTRL выделяю диапазоны от одного полужирного (включительно) до другого. Но так как файлы большие до 40 диапазонов, то это довольно утомительно и долго, хотелось бы автоматизировать. Пример файла, прилагаю.
Есть 14 листов в книге, на каждом по одному графику в формате .png, но все они почему-то в два раза уже по горизонтали. И мне хотелось бы автоматически их растягивать, пытался записать макрорекордером эти действия для одного листа, вот что он выдал:
Однако, если сделать это снова, но уже с помощью макроса, то размер увеличится и по вертикали, то есть сами пропорции рисунка сохранятся, что неправильно в моем случае.
P.S. Пример много весит из-за правил выложить не могу, если в нем будет необходимость, то что-нибудь придумаю.
Суть в том, что ищем название в определенной колонке, копируем значение, которое находится через колонку в определенную ячейку на другом листе. Макрос вроде бы довольно простой, но что-то я в нем делаю не так, так как дилетант в этом деле. Посмотрите, пожалуйста. Макрос в первом листе.
Раньше считал сумму итоговую через СУММЕСЛИМН или через СЧЕТ... но сейчас уже получились объемы (~6000 строк) Стало просто неудобно, может кто подскажет, как это все макросом заменить?
И еще вопрос есть по поиску в больших диапазонах, где надо много раз по одному и тому же столбцу (A) пройтись, причем на 10 листах(лист 1, лист2, лист3...лист10), но по поиску разных значений. Выбрать Петрова, скопировать на лист11 в определенную ячейку, потом Иванова, затем Сидорова и т.д. Есть ли какой-то способ облегчить макрос поиска? Если каждый раз записывать макрос через for each ws и for each r.Row, то это никакого места в коде не хватит...
У меня есть макрос, который я хочу переделать под процедуру:
Sub 1 () Dim TickerCol as variant Dim SpotCol as double
далее присваиваются столбцы
TickerCol = 3 SpotCol = 4 IVbid = 40
Curr_row = 3
While Worksheets(read_sheet_name).Cells(curr_row, TickerCol).Value <> "" Spot = Worksheets(read_sheet_name).Cells(curr_row, SpotCol).Value
далее много вычислений и запись результатов в IVbid
End Sub ===================================================================================== Для создания функции, переношу переменные в скобки, Public Function Ivcalc (...) Далее проводится расчет Exit function ===================================================================================== Чтобы воспользоваться функцией в другом сабе, я декларирую переменные по новой
Есть отчеты по датам в каждом из которых по 22 листа с данными, на основе этих отчетов готовится месячный отчет. После всех операций, остаются 2 листа ("лист1" и "лист2" + лист ДанныеДиаграмм, который не виден). На листе2 есть диаграмма, которую нужно вставлять на первый лист. Собственно задача передо мной стоит следующая: копировать эту диаграмму на первый лист без привязки к листу "ДанныеДиаграмм", так как эти листы хотелось бы макросом удалять сразу же после копирования диаграммы на лист1.
Может есть у кого мысли, как поиском отыскать диаграмму, убрать привязку к данным и перенести ее на первую пустую строку листа1, как вариант в первую пустую ячейку столбца А.
У меня есть таблица с параметрами опционов, мне требуется произвести замену по всей таблице. Условие следующее, если во втором столбце значение = "ECBOT", то копировать первые 4 левых символа из ячейки А (той же строки) в Ячейку А(той же строки). Сам сделать не смог через Then
Есть большая таблица до BA и где-то на 500 позиций. Каждая ячейка заполнена довольно сложными формами для расчета опционов. Так вот определяющая колонка P, если в ней заканчиваются значения, то и считать ничего не нужно во всех следующих колонках. Необходимо выделять область с началом в этой ячейке, где значение стало "" и до BA500 и очищать содержимое.
Раньше всегда делал через обрезание пустых строк, но сейчас встала необходимость оставлять данные в колонках левее P, а удалять(очищать содержимое) только то, что справа. Кол-во строк статично 493 и меняться не будет.
У меня такая проблема, количество формул на листе разрослось до катастрофических масштабов, поэтому решил их перенести в vba, чтобы ничего не сбить ручками. Так вот при копировании некоторых формул выдается ошибка, пример формулы прилагается ниже:
Ругается на "OPT", тут идет сравнение по трем буквам в столбце O, если OPT значит это опцион и далее идет выбор колл или пут. Помогите разобраться, что не так. Возможно где-то в самом начале надо задать это как переменную или что-то еще...
Появилась необходимость брать имя страницы из шапки таблицы, а именно из ячейки B2, но так, как при автоматическом переименование страниц excel не разрешает использовать ":", то появилось желание в ячейке B2 на всех листах поменять ":" на "-".
Sub ЗаменаДвоеточий2() Dim myWorksheet As Worksheet, x As Range For Each myWorksheet In Worksheets Range("B2").Select Selection.Replace What:=":", Replacement:="-" Next End Sub
Написал для себя макрос, но он не работает для всех листов сразу, помогите разобраться. Желательно укажите ошибку, если не сложно.
Впервые столкнулся с таким заданием. У меня есть файл (приложение). В нем надо произвести форматирование по определенному содержимому первой ячейки в строке заполнять определенный диапазон ячеек по столбцам до наступления нового события в первой ячейки n-ной строки.
Что должно получиться выделено красным цветом. Пожалуйста, помогите разобраться, как эти условия кодом описать. Применить это к нескольким листам и провести форматирования я могу сам с помощью макросов, а вот основное, что нужно не получается сделать.
Получил файл с 10-ю страницами из нескольких файлов. Все страницы примерно однотипные, меняется ширина некоторых таблиц и сами данные в таблицах. Суть моей задачи сводится к тому, что в середине каждого из листов появляется уникальная надпись "Дата экспирации" (появляется она в диапазоне от 50-120 строки) до которой мне надо удалить все строки, кроме первых 3. Помогите эту с виду простую задачку решить.