0
Окт 06
предлагаю обсудить здесь возможности нашей любимой и самой часто используемой программы
не знаю, у кого как, а у меня по ней до сих пор возникают вопросы, так как ВСЕ возможности изучению не поддаются
чем больше массивы данных, тем важнее, чтобы процессинг был быстрым, эффективным и исключал случайные ошибки
на данный момент вопрос такой - часто видела примеры форматирования по условию, но так и не поняла, как это делать
например, если значение ячейки = ноль, выделить ячейку каким-то цветом и тд
есть кто-нибудь, кто может подсказать?
(updated by admin)
Опубликовано
11 Окт 2006
Активность
128
ответов
18837
просмотров
44
участника
1
Рейтинг
Надо просто перебрать все листы в книге:
-----------------------------------------------
Dim x As Integer
For x = 1 To ActiveWorkbook.Sheets.Count ' перебираем листы
Sheets.Item(x).Select ' выбираем текущий
'делаем, что надо
Next x
-----------------------------------------------
как то так...
ну если макрос работает в рамках одного файла, то смысла писать activeworkbook нету
for i=1 to sheets.count
sheets(i).activate
'tralivali
next i
да. понты
Большое спасибо. Очень признателен всем, кто потратил личное время и помог.
Подскажите, плиз еще такой момент:
1. Как поменять с помощью макроса размеры диаграммы
2. Как сказать макросу в какую часть листа помещать диаграмму
Заранее, спасибо
1.
ActiveSheet.Shapes("Chart 3").Width = 400
ActiveSheet.Shapes("Chart 3").Height = 300
2.
ActiveSheet.Shapes("Chart 3").Top = 10
ActiveSheet.Shapes("Chart 3").Left = 10
Просто огромное спасибо!!!
Мда, отбой!Ничего не получается - диаграмма как была на одном месте, так никуда и не двигается, да и размер не меняется.
Вот кусок кода, отвечающий у меня за вывод чарта - может я что-то не так делаю?
'CHART
Dim Figure As Chart
y = Sheets("Idata").ChartObjects.Count
If (y > 0) Then
Sheets("Idata").ChartObjects.Delete
Set Figure = ActiveWorkbook.Charts.Add(, Sheets("Idata"))
Figure.ChartType = xlXYScatterSmooth
With ActiveChart
.HasTitle = True
.HasLegend = True
.ChartArea.Top = 1
Charts(1).Legend.Font.Name = "Arial Narrow"
Charts(1).Legend.Font.Size = 14
Z = Sheets("Idata").Range("M20").Value
Select Case Z
Case 1
Figure.SetSourceData Source:=Range("'Idata'!$E$22:$F$26")
.ChartTitle.Text = "Field Oil Production Rate"
Case 2
Figure.SetSourceData Source:=Range("'Idata'!$E$22:$F$26")
.ChartTitle.Text = "Field Water Cut"
Case Else
MsgBox ("Objective function is not selected")
End Select
End With
Figure.Location xlLocationAsObject, "Idata"
Else
MsgBox ("There is no charts on the list")
End If
Добавь вот это:
'CHART
Dim Figure As Chart
y = Sheets("Idata").ChartObjects.Count
If (y > 0) Then
Sheets("Idata").ChartObjects.Delete
Set Figure = ActiveWorkbook.Charts.Add(, Sheets("Idata"))
Figure.ChartType = xlXYScatterSmooth
ActiveChart.Location Where:=xlLocationAsObject, Name:="IData"
киньте еще на форум вопросы, там помогают всегда Planetaexcel.ru
Подобные вопросы в принципе решаются путем записи макроса по аналогичным действиям в экселе руками.
"Запись макроса по аналогичным действиям в экселе руками" может привести к тому, что выполнение этого же макроса выдает ошибку - при работе с диаграммой между прочим!... Сталкивался при попытке "достать" значения данных с диаграммы, вставленной из другой книги, связи с которой уже нет.
А кто знает что нужно прописать в макросе, чтоб созданная форма (окошечко с различными опциями) выводилась в книге excell при нажатии кнопки?
И в добавок еще один вопросик: что нужно прописать в макросе, чтоб создающаяся гистограмма выводилась не на отдельный (новый) лист, а на тот лист от куда была взята информация для ее построения (в моем случае это лист с табличками). Спасибо.
по второму: ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
Спасибо. Работает на УРА.
[quote name='way403']
Ура!!! Обновление! Теперь на русском языке. Формат DJVU - я открываю програмкой Document Express Editor.
Год выпуска: 2008
Автор: Уокенбах, Джон
Жанр: Руководство
Издательство: Диалектика
Формат: DjVu
Качество: 4+
Количество страниц: 816[quote]
Тоже заприметил и качнул эту книженцию. А в PDF бы да образ диска.
помогите, кто умеет визуализировать в excel каротажки примерно как на прилагаемом снимке
буду очень благодарен за образец формата для такого плота
Точно так, как на картинке не получится, т.к. в Экселе можно добавить лишь одну дополнительную ось. По 2 каротажа на график, пожалуйста. Придется повозиться с настройкой. Ось Y - глубина, оси X - значения каротажа.
Но лучше я бы рекомендовал поискать в сети какой-нибудь бесплатный viewer логов.
спасибо, но судя по приведенному плоту они как-то измудрились нанести 3 каротажки на одно поле
по поводу бесплатный viewer логов - вы правы но хотелось бы именно в экселе этого добиться, тем более что есть документальные свидетельства что это возможно, то есть имеется файл эксель с данными и таким плотом, только плот этот уже переведён в картинку :(
Подозреваю, что картинка взята из заключения геофизиков, т.е. просто джипеговская. У нас тоже так часто делают :)
ндаа.. Может другая ось была отрисована позади основного графика. А если даже диапазон чисел другой, так в чем проблема пересчитать график в таблице и выдать пересчитанный, но с оригинальным масштабом на несвязанной с данными оси? Построить эту картинку можно, но не проще-ли прожку написать которая отрисует именно так как надо безо всяких вывертов в экселе.
картинка точно создана в экселе
не так-то это просто как кажется имея в виду разнообразие каротажек и тд.
хотелось как-то попроще иметь готовый шаблон и перестраивать в экселе каротажки
Накладывание графиков, прозрачность и прочее... Но хлопотно это)
ну не так уж и хлопотно. Достаточно раз настроить, потом тока цифирки менять.
Я делал и несколько осей У(больше двух), и разрыв оси и др. мазохизм )) Красиво было))
Если мазохист попадёт в ад, то для него это будет рай?
Подскажите пожалуйста, что прописать в VBA для заданной кнопки в форме, чтобы при ее нажатии в textbox выводилось значение равное сумме значений из выделенного интервала (интервал предполагается в одной колонке, например B1:B23). Спасибо.
Вешаешь макрос на кнопку: проверка (или выделение) диапазона, суммирование значений, присваивание textbox.Value=значение
Это я и так знаю, а вот "проверка (или выделение) диапазона, суммирование значений, присваивание textbox.Value=значение" как выглядет в коде?
Ну раз это ты знаешь, то осталось совсем немного - объяснить машине на подходящем для неё языке тоже самое. Например так
Private Sub CommandButton1_Click() Set MyRange = Worksheets("Лист1").Range("B1:B23") Answer = Application.WorksheetFunction.Sum(MyRange) UserForm1.TextBox1.Value = Answer End Sub
Поверьте это не сложно. Нужно запастись книжкой, помощью Excel и терпением.
дурацкое форматирование, всё съехало...)))
Private Sub CommandButton1_Click()
Set MyRange = Worksheets("Лист1").Range("B1:B23")
Answer = Application.WorksheetFunction.Sum(MyRange)
UserForm1.TextBox1.Value = Answer
End Sub
Есть такой объект Excel "selection" (тип Range вроде) - используйте его.
Спасибо большое за помощь! В итоге получилось вот так:
Private Sub CommandButton6_Click()TextBox2.Value = Selection.AddressSet MyRange = Worksheets("Лист1").Range(TextBox2.Value)Answer = Application.WorksheetFunction.Sum(MyRange)TextBox7.Value = Answer * 0.2End SubТолько сегодня нашел, что на сайте microsoft есть тоже небольшая поддержка "Работа с макросами", мож кому будет интересно: http://office.microsoft.com/ru-ru/excel-help/CH006252839.aspx?CTT=97
Предлагаю вашему вниманию книжку: Excel 2010. Профессиональное программирование на VBA. Автор: Джон Уокенбах.Издательство: ДиалектикаГод: 2012Формат: pdfКачество: хорошее (OCR)Язык: русский
Скачать:
Книга: https://rapidshare.com/files/2218574976/EXCELVBA2010.pdf
Файлы примеры, прилагаемые к книге на компакт-диске: https://rapidshare.com/files/3202676968/Sample_Files.rar
п.с. Сам купил, сам сканировал, сам обрабатывал, сам делал закладки (оглавление). Книгу также можно найти на просторах интернета.
Вещь безценная! У меня два издания есть, но 2010 всё как-то не решался купить :) Спасибо!
ПАСИБА!!!
В ответ тоже хочется что-нибудь "вкусненькое" выложить вечерком
о, большое спасибо:)
Выложил по Excel-y ещё пару книг: http://files.mail.ru/QPCEEM
можно перезалить файл? а то файл не существет больше.
или если кто то другой может сделать это - буду благодарен.
Коллеги, скажите пожалуйста, есть ли экселевская программка, которая позволяет расчитывать гидратообразование ???
Типа упрощенной "версии" аналогичного модуля из Pipesim
ну если б на этот доблестный форум можно было залить файлы я бы выложил что есть, а так пищи ящик, кину пару фалов. авось пригодятся
Можно, вкладка File Browse в вашем профиле. Потом ссылку на файл вставте в комментарий.
способ не очень удобный, но попробовал
http://www.petroleumengineers.ru/sites/default/files/u3897/Desktop.rar
красиво иностранцы умеют делать. Спасибо.
Может и по выпадению парафинов/асфальтенов есть что-то подобное?
Было бы тоже очень интересно посмотреть
Надо сравнить с имеющейся.
посмотрел, у меня такого добра нет:(
у скбя поищу. За десктоп - огромное человеческое спасибо
Десктоп..отлично.. А может есть что с учетом минерализации??
там есть файл с учетом содержания солей.. по сути можно с этим файлом пошаманить. другого нет ничего
чего то не пойму. А присутсвие воды для гидратообразования задается просто 1 моль ?
Есть ли какой нибудь файлик описания к проге?
Страницы