Tips & tricks

15 отговора 1093 прегледа
#1

Tips & tricks

Дайте да направим една такава редовна рубрика, в която да съобщаваме някакви интересни и полезни трикове, които сме отркрили при работа.
Например наскоро съвсем случайно открих, че когато се прехвърлят данни от Аксес в Ексел по подразбиране шрифтът е MS Sana Serif. Ако се промени на добре познатият ни Times New Roman това сваля обемът на файла значително. В моя случай от 58 мегабайта на около 51 мегабайта, което си е повече от десет процента

То, не че не мога, ама има ли смисъл, като няма значение
Отговор
в отговор на f(x)dx #2

Re: Tips & tricks

Поради проявения интерес, публикувам тук следния трик
Във версиите на Ексел след 97 с Find може да се търси не само в текущия шийт, но и във всички шийтове на файла. Само трябва да се маркират всички (или само тези, които ви интересуват) шийтове. Иначе Find търси само в текущия.
м/у другото същото е положението и с Replace

То, не че не мога, ама има ли смисъл, като няма значение
Отговор
в отговор на f(x)dx #3

Re: Tips & tricks

Помните я тая тема, нали? Всъщност това, което искам да споделя с вас може би трябва да бъде в тема "Миг красота носи вечна радост".
Всички сме забелязали, че една таблица изглежда по-прегледно и информацията се чете по-добре, ако четните редове са оцветени в един цвят, а нечетните - в друг. Особено, ако става въпрос за някаква справка за голям шеф.
До днес постигах този ефект с помощтта на множество гимнастики и две допълнителни колони. Но тази сутрин открих много фино, елегантно и бих казал гениално решение на проблема. За повече подробности, четете тук.
Сега нямам много време (щото правя справки за един немалък шеф), затова не го превеждам на български. Но при проявен интерес ще го сторя.

То, не че не мога, ама има ли смисъл, като няма значение
Отговор
в отговор на f(x)dx #4

Re: Tips & tricks

сичко добре, ама нещо с тая формула =mod(row(),2)=1 не става

има няква грешка в това ,2 - иска няква друга стойност

К.

........I WASN'T REALY DRUNK AT THE TIME.......
Отговор
в отговор на killin #5

Re: Tips & tricks

Защото според синтаксиса на Mod(), формулата трябва да е:

=mod(row();2)=1

;o))))) Четете бре.


Щирлиц
Отговор
в отговор на killin #6

Re: Tips & tricks

За разделител на параметрите във формулите се използва List Separator-а (Разделител за списъци), който е посочен в Регионалните настройки.
Предполагам, че List Separator ти е ";".
Ако е така, формулата трябва да има вида:
=mod(row();2)=1

Отговор
в отговор на NDeu #7

Re: Tips & tricks

виж това вече беше правилния отговор - благодаря, баш точно си стана

10х

К.

........I WASN'T REALY DRUNK AT THE TIME.......
Отговор
в отговор на f(x)dx #8

Re: Tips & tricks

ето нещо и от мен по този въпрос

Sub Color()
Dim i As Integer
For i = 1 To 10 Step 2
Rows(i).Interior.ColorIndex = 6
Next
End Sub

Go Install Analysis Toolpack!
Отговор
в отговор на alexoff #9

Re: Tips & tricks

;о))) Като сме почнали - хайде да го равием докрай.

Този код:

Sub Macro1()


Dim iRowStart As Long
Dim iRowEnd As Long
Dim iColStart As String
Dim iColEnd As String
Dim iStep As Long
Dim iCount As Long
Dim iColor As Long

iRowStart = Val(InputBox("От ред:", "Запълване", "1"))
iRowEnd = Val(InputBox("До ред:", "Запълване", "65536"))
iColStart = InputBox("От колона:", "Запълване", "A")
iColEnd = InputBox("До колона:", "Запълване", "ZZ")
iStep = Val(InputBox("Стъпка:", "Запълване", "2"))
iColor = Val(InputBox("Цвят:", "Запълване", "6"))

For iCount = iRowStart To iRowEnd Step iStep
Range(iColStart & iCount & ":" & iColEnd & iCount).Select
With Selection.Interior
.ColorIndex = iColor
.Pattern = xlSolid
End With
Next iCount

End Sub


иска да му бъдат въведени начални и крайни - колона и ред, и ги запълва с избран цвят. Сега остава да се направи така, че тези стойности за начален и краен ред и колона да се "вземат" автоматично от предварително селектирана област. Т.е. да си маркираш с мишока някаква област, и да стартираш макроса, а той без да пита - да запълни избраната област.

Хайде помагайте сега. ;о)


Щирлиц
Отговор
в отговор на Щиpлиц #10

Re: Tips & tricks

а бре, момци, що се морите с VВА, като хората са го направили пиррррфектну и така?

То, не че не мога, ама има ли смисъл, като няма значение
Отговор
в отговор на f(x)dx #11

Re: Tips & tricks

Кои хора, и как са го направили? Искам да си запълня пред ред само част от таблицата... Е?


Щирлиц
Отговор
в отговор на Щиpлиц #12

Re: Tips & tricks

В отговор на:

Кои хора, и как са го направили?



Вж. линка от постинга на f(x)dx () 16.02.05 12:26
В отговор на:

Искам да си запълня пред ред само част от таблицата... Е?



Маркираш само част от таблицата и задаваш условното форматиране

PS
Напр. за три цвята:

Редактирано от NDeu на

Отговор
в отговор на NDeu #13

Re: Tips & tricks

Да бе. Верно. ;о))

Но остава нерешен въпроса ми как да "взема" адресите на лява-горна и дясна-долна клетка от маркирана област. ;о) Има приложение.


Щирлиц
Отговор
в отговор на Щиpлиц #14

Re: Tips & tricks

Напр.
MsgBox "ГореЛяво $" & Chr(Asc("A") + Selection(1).Column - 1) & "$" & Selection(1).Row & Chr$(13) & "ДолуДясно $" & Chr(Asc("A") + Selection(Selection.Count).Column - 1) & "$" & Selection(Selection.Count).Row

PS
Това не работи коректно, когато имаме няколко селектирани области (селекция с дупки).

Редактирано от NDeu на

Отговор
в отговор на f(x)dx #15

Re: Tips & tricks

този трик е страшен.
на линка има и доста други [линк]

Отговор
в отговор на Щиpлиц #16

Re: Tips & tricks

Знам, че вече е направено, заинтересува ме задачата вчера и се пробвах да стигна до решение (както казах съм начинаещ в VB и експериментирам къде каквото видя). Та това измислих:
Sub ocweti()
Dim Cell As Range
Dim i As Integer
Dim j As Integer
Dim b As Integer
Dim iColor As Long
Dim jColor As Long
iColor = Val(InputBox("Първи цвят:", "запълване", "6"))
jColor = Val(InputBox("Втори цвят:", "запълване", "none"))
Let i = -1

Let j = Selection.Columns.Count

For Each Cell In Selection
Let i = i + 1
Let b = Int(i / j)
If b / 2 = Int(b / 2) Then Cell.Interior.ColorIndex = iColor Else Cell.Interior.ColorIndex = jColor

Next

End Sub

Отговор