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

» Excel VBA (часть 3)

Автор: SAS888
Дата сообщения: 25.06.2012 06:56
Ну, если "в лоб", то так:

Код: Sub qq()
Dim i As Long: Application.ScreenUpdating = False
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) = 0 Then Cells(i, 3).Insert xlDown
Next
End Sub
Автор: psiho
Дата сообщения: 25.06.2012 07:04

Цитата:
Уважаемые форумчане! Опять прошу вашей помощи

Смотри пример: http://rghost.ru/38856099
Автор: CrazYViruS_CrazyNet
Дата сообщения: 27.06.2012 17:50
Доброго Времени всем !
Помогите пожалуйста ...
Мне необходимо сделать так чтобы, при открытии документа на основе предыдущей записи - таблицы в документе ниже создавалась копия только с другой датой ...
excel 2010

Возможно это очень простой вопрос поэтому прошу прощения у всех, срочно надо, а чтобы все понять читать надо много, в особенности по макросам я ноль =(((
Автор: andrewkard1980
Дата сообщения: 02.07.2012 10:05

Цитата:
Помогите пожалуйста

В модуль "Эта книга" пишем следующее:

Код:
Private Sub Workbook_Open()
Dim lLr&
lLr = Worksheets("YourName").Cells(Rows.Count, "A").End(xlUp).Row ' Замените YourName на свое. А - столбик начала таблицы
Rows(lLr).EntireRow.Copy
Cells(lLr + 1, 1).Select
ActiveSheet.Paste
Cells(lLr + 1, 1) = Date ' После запятой поставьте вместо 1 порядковый номер столбика, куда нужно вставить дату
End Sub
Автор: CrazYViruS_CrazyNet
Дата сообщения: 02.07.2012 12:25
andrewkard1980
Огромное СПАСИБО все получилось, все работает !!!
Автор: Pokemonchyk
Дата сообщения: 04.07.2012 18:59
Добрый день всем,

Подскажите пожалуйста в чем проблема...

Есть вот такой код сортировки диапазона:


Код:
Sub sorted()
Dim sw As Worksheet
Set sw = Worksheets("3.sheet1")
sw.Range(Cells(1, 1), Cells(30, 12)).Sort Key1:=sw.Columns("A"), order1:=xlAscending, Header:=xlNo
End Sub
Автор: miwa
Дата сообщения: 04.07.2012 19:27
Pokemonchyk
А если писать

ActiveWorkBook.Sheets("sheet1").Range(Cells(1, 1), Cells(30, 12)).Sort

?
Автор: Pokemonchyk
Дата сообщения: 04.07.2012 19:35
miwa

Цитата:

А если писать

ActiveWorkBook.Sheets("sheet1").Range(Cells(1, 1), Cells(30, 12)).Sort

?


То же самое.

Код:
Sub sorted()
ActiveWorkbook.Sheets("sheet1").Range(Cells(1, 1), Cells(30, 12)).Sort Key1:=ActiveWorkbook.Sheets("sheet1").Columns("A"), order1:=xlAscending, Header:=xlNo

End Sub
Автор: nosewide
Дата сообщения: 05.07.2012 19:06

Цитата:
Помогите как можно открыть *xla vba код говорит project is unviewable
Попробовал через Open Office открыть без результатно..


Цитата:
Q: При открытии XLA-файла я получаю сообщение "Project is unviewable". Как посмотреть проект ?

посмотрите сюда http://freevba.narod.ru/
Автор: miwa
Дата сообщения: 05.07.2012 19:41
Pokemonchyk

Цитата:
нашел решение сам!!!
 
Нужно типа активировать лист


Блин, логично

nosewide
А это вы, простите, с кем только что общались?
Автор: SAS888
Дата сообщения: 07.07.2012 03:24
Pokemonchyk
Активировать лист ни к чему. Ошибка возникает потому, что при обращении к диапазону ячеек в то время, когда лист sw не активен, Вы ссылаетесь на sw.Range (т. е. диапазон листа sw), а ячейки этого диапазона (Cells) ссылок на лист не имеют, т. е. по умолчанию принадлежат активному листу. Вот у Excel-я и "сносит крышу".
Достаточно добавить необходимые ссылки:

Код: sw.Range(sw.Cells(1, 1), sw.Cells(30, 12))
Автор: andrewkard1980
Дата сообщения: 09.07.2012 12:34
Коллеги, не подскажете, как сделать такой фон в UserForm, например как здесь:
http://excelvba.ru/tools/DatePicker
это картинка? Просто если я вставляю картинку через инструмент Image, ее можно выделить и посмотреть свойства, а тут?

Добавлено:
Уточняю: панель настроек, форма frmOptions
Автор: Maximus777
Дата сообщения: 11.07.2012 08:24
andrewkard1980, в свойствах формы есть пункт Picture, вот туда и надо прописывать картинку. Если она отличается по размерам от формы, то в пункте PictureSizeMode поставить ...Stretch. Я обычно делаю так, рисую в фотошопе линию в один пиксель, с градиентной заливкой и впяливаю в Picture формы. Свойство stretch её растягивает на всю форму и получается небольшой вес и красотища
Автор: andrewkard1980
Дата сообщения: 11.07.2012 10:07
Maximus777
Спасибо. Попробую.
Автор: andrewkard1980
Дата сообщения: 12.07.2012 11:59
Еще есть вопрос по пользовательским формам, в проекте есть 2 формы, запускаю их в немодальном режиме (.Show 0):
1) Первая запускается при открытии книги;
2) Вторая кнопкой с первой формы.

Суть вопроса: как вернуть фокус первой форме при закрытии второй программно:

Код:
Private Sub UserForm_Deactivate()
UserForm1.Activate ' Такой функции нет
End Sub
Автор: Maximus777
Дата сообщения: 12.07.2012 12:46
andrewkard1980
Так если первая не закрывалась, то она автоматом получает фокус, после закрытия второй. Пример.

Если не запустится, надо в референсах VBA отключить Xtreme controls (это контролы в стиле системы, а не такие унылые, как в VBA по дефолту).
Автор: andrewkard1980
Дата сообщения: 12.07.2012 14:14
Ага, спасибо. Да точно, у меня не активировалась из-за UserForm1.Show 0. Когда форма модальная, нельзя активировать другую книгу, что есть не совсем удобно
Автор: safarovkn
Дата сообщения: 13.07.2012 07:49
Добрый день, подскажите пожайлуста, как перевести в верхний регистр весь лист.
Автор: andrewkard1980
Дата сообщения: 13.07.2012 17:15
Может так:

Код:
Sub test()
Dim oCell As Object
For Each oCell In ActiveSheet.UsedRange
oCell.Value = UCase(oCell)
Next
End Sub
Автор: Ndr3w
Дата сообщения: 24.07.2012 13:03
для проблемы, описанной здесь я раздобыл скрипт, но он ни в какую не компилится в 2007-м Экселе

[more=вот код]Dim Vse(1 To 100000) As aInfo

Private Sub CommandButton1_Click()
On Error Resume Next
Close
Open "d:\1.txt" For Input As #1
Dim col
While Not EOF(1)
col = col + 1
Line Input #1, Vse(col).Kompany
Line Input #1, Vse(col).Adress
Line Input #1, Vse(col).e_mail
Line Input #1, Vse(col).Phone
Line Input #1, Vse(col).propusk
Wend
Debug.Print col
Close #1
Label1 = col

For i = 1 To col
' If Mid(Vse(i).Kompany, 1, 1) <> Chr(22) Then Лист1.Cells(i, 1) = Vse(i).Kompany Else Лист1.Cells(i, 1) = Mid(Vse(i).Kompany, 2, Len(Vse(i).Kompany) - 1)
Лист1.Cells(i, 1) = Vse(i).Kompany
Лист1.Cells(i, 2) = Vse(i).Adress
Лист1.Cells(i, 3) = Vse(i).e_mail
Лист1.Cells(i, 4) = Vse(i).Phone
Next i

End
End Sub[/more]

в чём может быть загвоздка?
Автор: Maximus777
Дата сообщения: 24.07.2012 13:30
Ndr3w
Что значит "не компилится"? Говорит хоть чего или молча работу саботирует?

Upd:
Вобчем вот рабочий вариант. В примере делалось по ходу с формами, я же просто кнопку прям на лист положил.
Автор: Ndr3w
Дата сообщения: 24.07.2012 14:25
Maximus777
вот скриншотик
Автор: Maximus777
Дата сообщения: 24.07.2012 14:41
Тип данных aInfo ему неизвестен, о чём он честно и сообчает. См. ссыль в моём предыдущем посте, я выложил там рабочий файл.
Автор: Ndr3w
Дата сообщения: 24.07.2012 14:54
Maximus777
большое спасибо
но в итоге шляпа какая-то всё равно...
Автор: Maximus777
Дата сообщения: 24.07.2012 15:07
Ndr3w
Цитата:
но в итоге шляпа какая-то всё равно..

Пуркуа? Вроде всё заполняется.
Автор: Ndr3w
Дата сообщения: 24.07.2012 15:28
Maximus777
вот как у меня происходит


Добавлено:
твой скрипт наверно работает по алгоритму, который не предусматривает пустые строки в оригинальном файле, да? а то они присутствуют, и потому наверно такая упяча
Автор: Maximus777
Дата сообщения: 24.07.2012 15:47
Ndr3w
Цэ не мой скрипт Я только дополнил его. Короче нужен твой *.txt, чтобы сразу всех собак откопать.
Автор: Ndr3w
Дата сообщения: 24.07.2012 15:58
Maximus777
http://rghost.ru/39388813
Автор: Maximus777
Дата сообщения: 24.07.2012 16:39
Ну вот как-то так. Можно и дальше ещё вылизывать код, но для этого надо знать желаемый конечный результат.

Прикольно. В списке даже мой город есть, Усть-Каменогорск. Только телефоны устаревшие. Номеров на 47 уже нет в использовании.
Автор: Ndr3w
Дата сообщения: 24.07.2012 17:02
Maximus777
всё супер =)
можно ещё код?

Добавлено:

Цитата:
Прикольно. В списке даже мой город есть, Усть-Каменогорск. Только телефоны устаревшие. Номеров на 47 уже нет в использовании.

это уже косяк единой справочной системы Аитэра

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127

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


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