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

» Excel VBA (часть 3)

Автор: Alexikit
Дата сообщения: 16.06.2010 12:19
humanunique

Добавьте задание диапазона


Код: Sub test()
Dim myRange As Range
Set myRange = Worksheets("Лист1").Range("A1:D7")
Call ExampleRecolor(myRange)
End Sub
Автор: vlth
Дата сообщения: 16.06.2010 15:52
maratino

Цитата:
vlth
Спасибо! но что то не то.


Правильно – не совсем то, что Вы хотели: я уравнял все картинки по ширине.

Если такой подход не устраивает, замените
Код: .Width = 100: .Height = 100
Автор: maratino
Дата сообщения: 16.06.2010 19:17
vlth

Добрый день! если не трудно, выложи файл на закачку. может я не так делаю
Или ezov@mail.ru от vlth
Спасибо за внимание
Автор: Frantishek
Дата сообщения: 16.06.2010 23:48
Ребят, помогите кто шарит, стоит хитрая задача разбить в ячейках цвета радуги равномерно по убыванию яркости. Т.е. чтобы получилась матрица 7x7, по вертикали - цвета, по горизонтали - разложение каждого цвета от темного к светлому.
Предполагаю, что можно задействовать через формулы..
Начал делать вручную, заколебался)) - http://slil.ru/29346122

Если что, я простимулирую, очень надо(
Автор: maratino
Дата сообщения: 17.06.2010 17:56
vlthДобрый день! я поменял параметры
.Width = 100: .Height = 100

на
Код: .Width = objPic.Width: .Height = objPic.Height


а строку
Код: .ScaleHeight objPic.Height / objPic.Width, msoFalse удалил

теперь безобразно увеличивает. но за то появился шанс повлиять на параметры. сейчас постараюсь , что нибудь поискать в инете по поводу отладки
Спасибо за код



Добавлено:
vlth
Извини! Код четка работает. оказывается, .Width = 100: .Height = 100 задет размер, а .ScaleHeight objPic.Height / objPic.Width, msoFalse пропорциональность. То есть, нечего не искажается, только можно уменьшить или увеличить размер миниатюры. СУПЕР!! то что надо.! спасибо! Но я немножко огарчен. На моем листе не работает.
пишет Method 'OLEObjects' of object '.Worksheet' failed
Автор: vlth
Дата сообщения: 17.06.2010 20:36
maratino

Цитата:
Method 'OLEObjects' of object '.Worksheet' failed


На моём листе расположен скрытый элемент управления 'Рисунок' - я об этом говорил выше.

Чтобы его увидеть, выполните Вид->Панели инструментов->Элементы управления.

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

Правее на панели - кнопка с указательным пальцем, которая вызывает окно свойств выделенного
контрола. В свойствах 'Visible' рисунка установлено в False.

Обратите внимание - я не менял имя элемента (Image1), заданное по умолчанию.
Автор: Ksussha
Дата сообщения: 18.06.2010 06:25
Здравствуйте! Помогите с решением задачи по VBA.
В текстовом файле подсчитать сколько раз встречается слово, введенное с клавиатуры.
Сегодня вечером сдавать работу, а у меня не решена эта задача(
Автор: vlth
Дата сообщения: 18.06.2010 06:39
Ksussha
Встречный вопрос.
А чем отличаются в текстовом файле слова, введённые не с клавиатуры, а, скажем,
вставкой из буфера обмена?

Добавлено:
Если Вам нужно подсчитать кол-во вхождений слова в текст, алгоритм такой:

1. Читаете весь текст в переменную.
2. В содержимом переменной удаляете знаки препинания и пр. "ненужности"
3. Заполняете массив словами с пом. Split
4. Просматривая полученный массив в цикле, считаете кол-во вхождений искомого слова.
Автор: Ksussha
Дата сообщения: 18.06.2010 07:26
vlth, не могли бы выдать пожалуйста код?
Очень важно.
Автор: visual73
Дата сообщения: 18.06.2010 08:05
Frantishek
на ящик брошу
Автор: Drazhar
Дата сообщения: 18.06.2010 08:34
Sub aaa()
Dim fso, f, searchtxt
Dim strfile As String
Dim txt As String
Set fso = CreateObject("Scripting.FileSystemObject")
strfile = "C:\1.txt"
searchtxt = InputBox("Введите искомый текст")
If searchtxt = False Then
End
End If
Set f = fso.OpenTextFile(strfile, 1)
txt = f.readall()
i = 0
While InStr(txt, searchtxt) <> 0
txt = Replace(txt, searchtxt, "", , 1)
i = i + 1
Wend
f.Close
MsgBox ("Введенный текст встречается в файле " & i & " раз")
End Sub
Пойдет?
Автор: Ksussha
Дата сообщения: 18.06.2010 11:06
Да спасибо!

Добавлено:
Хотелось бы еще узнать об одной задаче
В одномерный массив A размеренности N при помощи датчика случайных чисел вводятся действительные числа в диапазоне от -200 до 12000 (N вводится с клавиатуры). Вывести их в строку рабочего листа. Все те числа которые больше половины максимального значения всех элементов массива и целая часть которых является простым числом, выделить цветом.
Датчик я вроде сделала:
for i=1 to N
A(i) = rnd*12200 -200
cells(1,i).value=a(i) 'вывод в строку
next i
А вот дальше как делать не пойму(
Автор: Drazhar
Дата сообщения: 18.06.2010 12:32
Ksussha

Dim a() As Double
Dim prime() As Integer
N = InputBox("num")
ReDim a(N)
ReDim prime(3)
prime(0) = 1
prime(1) = 2
prime(2) = 3
prime(3) = 9923 'Наполнение массива простыми числами. Сделаете сами
maxx = -200
For i = 1 To N
a(i) = Rnd * 12200 - 200
If a(i) > maxx Then
maxx = a(i)
End If
Cells(1, i).Value = a(i) 'вывод в строку
Next i
For i = 1 To N
If Cells(1, i).Value > 0.5 * maxx Then
For j = 0 To UBound(prime)
If prime(j) = Int(Cells(1, i).Value) Then
Cells(1, i).Interior.Color = 255
Exit For
End If
Next j
End If
Next i
End Sub
айс?
Автор: Ksussha
Дата сообщения: 18.06.2010 12:50
Drazhar, в строку выводит но почему-то не выделяет цветом. Меняла на
Cells(1, i).Interior.Color = RGB(255, 255, 0) тоже ничего не происходит
Автор: Drazhar
Дата сообщения: 18.06.2010 13:39
Ksussha
вы список простых чисел заполнили? или с имеющимся работаете?
Автор: antonsf
Дата сообщения: 18.06.2010 23:27
to humanunique

Цитата:

Цитата: antonsf
Можешь пояснить, если не затруднит, как его встроить в свой проект. А то не пашет что-то...

Автор: filemoto
Дата сообщения: 21.06.2010 13:16
люди, подскажите кто-нибудь, как вывести надстройку с моими кнопками на панель в xl2007?
Изначально, она показывалась ещё, там где панель "Разработчик".
Потом я както случайно закрыл.
И уже всё облазил, нигде не могу найти как её включить снова.
Автор: LaCastet
Дата сообщения: 21.06.2010 14:54
filemoto

Цитата:
И уже всё облазил, нигде не могу найти как её включить снова.

Попробуй как в 2003-м Сервис->Настройка->вкладка Панели инструментов. Если найдёшь там свою панель "Разработчик", поставь слева галочку.
Автор: filemoto
Дата сообщения: 21.06.2010 16:52
LaCastet
панель Разработчик видна.
Не видна моя надстройка в этой панеле.
Автор: LaCastet
Дата сообщения: 21.06.2010 18:24
filemoto

Цитата:
Не видна моя надстройка в этой панеле.

Значит кнопку удалил, сделай её по-новой.
Автор: FUTURiTY
Дата сообщения: 21.06.2010 23:11
Подскажите, кто шарит в ВБА, каким способом можно запустить выполнения макроса, через виндовый планировщик либо виндовую командную строку?
К приеру у меня есть макрос "X", его нужно выполнять раз в день, и записывать полученные результаты его выполнения в Excel табличку.
Подскажите в какую сторону копать?

Заранее Спасибо за ответы!
Автор: Drazhar
Дата сообщения: 22.06.2010 06:03
FUTURiTY
имхо надо копать в сторону скриптов на vbs(зависит от специфичности кода)
Автор: filemoto
Дата сообщения: 22.06.2010 14:44
LaCastet
какую кнопку? что за вздор?
народ, никто чтоли не пользуется надстройками в 2007?
Автор: LaCastet
Дата сообщения: 22.06.2010 14:54
filemoto

Цитата:
какую кнопку? что за вздор?


Цитата:
люди, подскажите кто-нибудь, как вывести надстройку с моими кнопками на панель в xl2007?

Если твоя панель видна, ставишь на неё мышь, жмёшь правую кнопку и выбираешь в меню последнюю строку Настройка. Выбираешь вкладку Команды. В списке категории выбираешь Макросы. В правом списке (Команды) выбираешь Настраиваемая кнопка. Ставишь на неё мышь, жмёшь левую кнопку и тащишь её на панель инструментов. А дальше настраиваешь эту кнопку: назначаешь ей макрос, имя и внешний вид.
Автор: filemoto
Дата сообщения: 22.06.2010 17:47
LaCastet
так панель-то и не видна
Автор: LaCastet
Дата сообщения: 22.06.2010 21:30
filemoto
Ты же сказал, что

Цитата:
панель Разработчик видна.


Если не видна, Сервис->Настройка, вкладка Панели инструментов. Находишь свою в списке и ставишь против неё галочку. А если её там нет, значит её кто-то удалил. И её нужно создать, а потом поместить на неё кнопки.
Автор: GenyaMS
Дата сообщения: 24.06.2010 08:02
Есть задача: присвоить переменной значение текущей даты из Win XP в макросе. Как это сделать? если можно то дайте строчку с кодом?
Автор: lezval
Дата сообщения: 24.06.2010 09:32
GenyaMS
стандартные функции для работы с датой:
Date() — возвращает текущую системную дату
Time() возвращает текущее системное время
Now() — возвращает текущие дату и время вместе
Автор: filemoto
Дата сообщения: 25.06.2010 01:33
LaCastet
блина, да нету такого в 2007...

у меня другой вопрос:
есть два листа. можно ли с первого через контрол выбрать три ячейки, например А1, В4, С7, скопировать их, и вставить в те же самые места на втором листе?

делаю так, выбираю на первом лист нужные ячейки, копирую, потом выделяю эти же ячейки на втором листе, вставляю, и генерится ошибка, мол, команда не поддерживается для несвязанных диапазонов.

как можно вставить скопированные ячейки в те же места на другом листе?
Автор: Hugo121
Дата сообщения: 25.06.2010 11:35
filemoto можно, вот идея:


Код: Sub ttt()
arr = Split(Selection.Address, ",")
For i = LBound(arr) To UBound(arr)
Range(arr(i)).Copy Sheets(2).Range(arr(i))
Next
End Sub

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127

Предыдущая тема: VS 2010


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