Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Excel VBA (часть 2)

Автор: bamaslak
Дата сообщения: 21.12.2009 22:58
а что это плохо иметь подругу???=))) лучше,ч ем друга)))
Автор: Troitsky
Дата сообщения: 22.12.2009 07:57
bamaslak

Цитата:
1. word. В каждом слове текущего предложения изменить порядок букв на обратный.

см. шапку
Цитата:
Word VBA все вопросы по Word VBA туда


Цитата:
2. excel. Кусочно-линейная функция f(x) представлена в виде таблицы, состоящей из двух одинаковых по высоте столбцов чисел. В первом столбце находятся значения x, во втором — значения f. Значения x строго монотонно возрастают. Высота столбцов n заранее неизвестна, но она точно больше одного (таким образом, задан как минимум один линейный участок). Создать третий столбец высоты n, содержащий значения интеграла от f(x) по x от самого первого значения x до текущего значения x.

Вполне успешно решается с помощью встроенных функций. Первая ячейка третьего столбца по определению будет нулевой, во вторую и последующие ячейки вставляется формула, суммирующая значение ячейки предыдущей и площадь трапеции, образованной текущим интервалом.
см., например, метод трапеций.
Если все таки применение макросов является обязательным, то соответствующие формулы в книгу можно и макросом заносить.
Автор: dinaparfenova
Дата сообщения: 22.12.2009 09:13
vlth, это не предположение, а я хотела написать "если вы имеете ввиду"
за помощь спасибо!
Автор: Igor_Paseka
Дата сообщения: 23.12.2009 13:05
Стоит такая задача. Есть форма для заполнения реестра документов. Название документа - есть гиперссылкой на отсканированый документ который хранится в конкретной папке. Нужно сделать так что-бы при заполнении формы реестра документов можно было запустить сканирование документов прямо из формы, - стандартным Microsoft Office приложением для сканирования документов. Сохранить в конкретной папке и сразу-же сделать гиперссылку на него.

Сделал так: сначала сканируем документ, потом заходим в EXCEL запускаем макрос и ссылаемсы на файл. А нужно что-бы при заполнении формы сразу сделать и сканирование и гиперссылку.
Спасибо.
Автор: PrWork1
Дата сообщения: 23.12.2009 21:52
Igor_Paseka

Ну и смотри объекную модель этого "стандартного средства сканирования", подключай ссылку, создавай объект и вызывай его методы из макроса.
Автор: SIgor33
Дата сообщения: 25.12.2009 13:28
Подскажите, пожалуйста, как сделать, чтобы сообщение от Excel "заменить содержимое конечных ячеек" не появлялось на экране (по умолчанию ответить на него "ДА") ?
Автор: vlth
Дата сообщения: 25.12.2009 13:41
application.displayalerts=false
Автор: mflash123
Дата сообщения: 27.12.2009 12:36
Вобщем задача..

2 таблицы, в первой наименование,а во второй сумма и тоже самое наименование,только список выпадающий. Надо чтобы из второй таблицы значение суммы переходили в первую таблицу,в зависимости от наименования, которое мы выберем из списка в первой табл. Это вроде делается через ВПР,но я всю голову себе слома..
Для дополнительных свидений прикрепил атач файла икселя,там что надо и ниже типа примера..очень надеюсь на оперативную помощь..
http://file.sibnet.ru/get/file/?id=752081
Автор: Khotckevich
Дата сообщения: 27.12.2009 15:22
Добрый день.

Возникает следующая проблема.

На предприятии установлена программа, создающая отчеты в формате Excel, просто тупо бросающая туда данные в виде небольшой таблицы. Создается автоматически файл-темплейт скажем с именем template.xlt

Теперь, после создания отчета, должен открываться этот созданный темплейт.

В 2003 версии - автоматически создается файл template1.xls (видно в заголовке окна Excel) и работа спокойно продолжается.

В 2007 версии - я сразу же получаю ошибку



Причем в заголовке окна так и стоит имя файла - template.xlt

Никакие ухищрения - автоматически сохранять в формате Excel 2003 или с разрешенными макросами не помогают. Пробовал вставлять в тело подпрограммку auto_open с явным указанием сохранить в том ли ином формате - результат тоже плачевный.

Кто-нибудь подаст руку помощи?
Автор: vlth
Дата сообщения: 27.12.2009 17:41
SIgor33

Цитата:
Excel 2003. Как кодом VBA "Пропустить ошибку" для текстовых цифр?
Подскажите пожалуйста.

Application.Range("A1").Errors(xlNumberAsText).Ignore = True
(Application.Cells(1, 1).Errors(xlNumberAsText).Ignore = True)

Если нужно пропустить ошибки в диапазоне, содержащем более одной ячейки, придётся использовать цикл.

Добавлено:
Khotckevich
Когда только вышел 2007-й офис, поставил его себе для пробы. Так вот, код, до этого работавший у меня без проблем, стало клинить в том месте, где программно добавлялась то ли ссылка на библиотеку в VBE, то ли модули классов книги и листа - уже точно не помню, что, но скорее второе. Победить Excel тогда так и не удалось, поэтому я решил, что ну его, 2007-й, куда подальше: нам и в 2003-м неплохо )))

Добавлено:
М.б. сохранять файл в формате xltm ?

Добавлено:
mflash123
Поскольку Вы уже получили ответ в ветке в теме Excel FAQ, то эта функция будет, так сказать, "для коллекции"
Код: Function fnСуммир_с_Условием(ДиапазонПросмотра As Range, _
ДиапазонСуммир As Range, Критерий As Variant) As Double

'ДиапазонПросмотра-диапазон в столбце "I"
'ДиапазонСуммир-диапазон в столбце "H"
'Критерий-ссылка на ячейку из столбца "D"
Dim i As Long, oCell As Range, oCell2 As Range, dblSum As Double
i = 1
For Each oCell In ДиапазонПросмотра
If oCell = Критерий Then
For Each oCell2 In ДиапазонСуммир.Rows(i).Cells
dblSum = dblSum + oCell2
Next oCell2
End If
i = i + 1
Next oCell
fnСуммир_с_Условием = dblSum
End Function
Автор: Khotckevich
Дата сообщения: 28.12.2009 08:29

Цитата:
М.б. сохранять файл в формате xltm


Он до этого не доходит, я же говорю.
Автор: SIgor33
Дата сообщения: 28.12.2009 12:27
Задача состоит в том, чтобы по кнопке открывался нужный мне файл Word (c пом. Application.GetOpenFilename) и оттуда в Excel копировалась одна единственная существующая в нём таблица с балансом банка, а потом закрывался word без сохранения.
Автор: vlth
Дата сообщения: 29.12.2009 09:45
SIgor33
Что-то типа такого должно быть:

Код: Sub prcInsertTblFromWord()
Dim oWord As Word.Application, oDoc As Word.Document
Dim strFile As String

strFile = Application _
.GetOpenFilename("Файлы Word (*.doc;*.docx), *.doc;*.docx")
If strFile = "False" Then Exit Sub
Set oWord = CreateObject("Word.Application")
oWord.Visible = False
Set oDoc = oWord.Documents.Open(strFile)
oDoc.Tables(1).Select
oWord.Selection.Copy
Worksheets("Лист1").Paste Cells(1, 1)
Set oDoc = Nothing
oWord.Quit SaveChanges:=False
Set oWord = Nothing
End Sub
Автор: SIgor33
Дата сообщения: 29.12.2009 12:12
vlth
большое спасибо
Автор: SIgor33
Дата сообщения: 07.01.2010 14:33
Возник вот такой вопрос.
Есть в Excel такая штука как Средства статистического анализа данных в нем Корреляционный анализ, который из таблицы с данными создает таблицу соотвествующую таблицу из коэфициентов. Нужно подогнать результаты коэффицентов. Отсюда вопрос если какие функции обратного преоброзования таблицы коэфициентов в таблицу с данными
Автор: JekG
Дата сообщения: 11.01.2010 08:16
Вопрос знатокам.

Есть столбец типа:
Дата события
29.12.2009 10:37:38
30.12.2009 16:16:19
31.12.2009 13:07:44
.............

Нужно в ячейке соседнего столбца получить строку Промежуток с дд.мм по дд.мм гггг. В столбце дат возможны пустые ячейки.
Автор: ZlydenGL
Дата сообщения: 11.01.2010 08:24
JekG, есть функция DateDiff() в VBA (в формулах Excel ее почему-то не вывели), но по возможности все-таки формализуйте задачу чуть больше?
Автор: JekG
Дата сообщения: 11.01.2010 08:41
ZlydenGL
Есть файл отчета где напротив даты идет определенное событие. В одной из ячеек нужно указать за какой промежуток времени этот отчет сделан. Чтобы не лопатить весь список в поиске максимальной и минимальной даты хочу это автоматизировать.
Автор: ZlydenGL
Дата сообщения: 11.01.2010 08:45
JekG, а! Так это все упрощает Функции Min() и Max() тебе в помощь Они доступны в том числе на листе Excel Только тип ячеек не забудь жестко указать "Дата/время".

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133

Предыдущая тема: Написание своего HyperTerminal для считывания данных


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.