GRY-Online.pl --> Archiwum Forum

excel 07 i funkcja LOS()

09.11.2009
00:32
[1]

<<ziut>> [ Konsul ]

excel 07 i funkcja LOS()

witam, mam problem
robię arkusz do obliczania "losowej" części gry RPG. Problem w tym że nie dam rady bardziej się przypatrzeć i przeanalizować danych gdyż wszystko jest oparte na funkcji los co powoduje że każdym enter itp przeliczenie arkusza. da się jakoś"usztywnić" tę funkcję aby była generowana tylko poprzez konkretne polecenie a nie przy każdym najdrobniejszym przeliczeniu arkusza?

09.11.2009
00:57
smile
[2]

Mayhem [ Henry Chinaski ]

Najprostsze co na razie udało mi się wymyślić to nagranie makra, które wpisuje funkcję los() w wybranych komórkach, a następnie kopiuje wyniki i wkleja je jako wartości. Podpinasz je pod jakiś skrót klawiaturowy/guzik w arkuszu i przy każdym uruchomieniu makra dostajesz żądaną ilość losowych wartości w formie liczb, a nie formuł.

Tak to wygląda dla czterech wartości, w komórkach A1-A4:

Sub Random()
'
' Random Makro
'
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Range("A2").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Range("A3").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Range("A4").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Range("A4").Select
Range(Selection, Selection.End(xlUp)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

09.11.2009
01:00
[3]

<<ziut>> [ Konsul ]

hmm, ja z VB na bakier jestem ale będzie się trzeba troche poduczyć widze;]
rozumiem funkcja los pojawia się w A1-4 tylko podczas makra a po jego zakończeniu znika?

edit:literówki

09.11.2009
01:03
[4]

Mayhem [ Henry Chinaski ]

Dokładnie tak, los() pojawia się na czas działania makra, następnie wyniki są kopiowane i wklejane w tych samych komórkach jako wartości. Jak chcesz mogę Ci podesłać na maila gotowy arkusz.

09.11.2009
01:04
[5]

<<ziut>> [ Konsul ]

hmmm, a rozumiem całe te makro zadziała ja zrobie kopiuj wklej w edytorze VB?bo potrzebuje takiej operacji na 100.000 komórek;]

edit:
oki nie trzeba:)już ogarnąłem sprawe:) wielkie dzięki za pomoc;]

edit2:
albo jeszce pytanie. można jakoś z góry narzucić mu zakres A1-100000 czy trzeba ręcznie wpisać każde polecenie odnośnie odpowiedniej komórki?

09.11.2009
01:18
[6]

Mayhem [ Henry Chinaski ]

Musiałem chwilę pomyśleć :) Dla 100000 (poczynając od A1) wygląda to w ten sposób:

Sub Makro1()
'
' Makro1 Makro
'
Range("A1:A100000").Select
Selection.Formula = "=RAND()"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'
End Sub

09.11.2009
01:24
[7]

<<ziut>> [ Konsul ]

dzięki raz jeszcze;] jak dalej pojawią się jakieś problemy gdzie trzeba wkroczyć z VB to się jeszcze odezwę;]

09.11.2009
08:25
[8]

Rendar [ Srokaty Konik ]

Hmm.... makro dobra sprawa. Ale jeśli chodzi Ci tylko o przejrzenie danych (tak zrozumiałem), a przeszkadza w tym automatyczne obliczanie, to może prościej je po prostu wyłączyć?

09.11.2009
21:35
[9]

<<ziut>> [ Konsul ]

a to można?za dobry w excelu nie jestem więc wiem tyle co sam się nauczyłem, więc prosze o zrozumienie jeśli to jakaś podstawa jest;]

i jeszcze inna sprawa

mam tabele:

przykładowe wartości

hit | wartość
------------------------
hit | wartość
crit | wartość x2
miss | 0
hit | wartość
dodge | 0
hit | wartość
crit | wartość x2

i teraz chciałbym zliczyć wartości max i min oddzielnie dla hit i crit. sobiście nie mam pomysłu na formułę

09.11.2009
22:56
[10]

<<ziut>> [ Konsul ]

czas na edit minał;]
ogarnąłem to przeliczanie automatyczne; nie ma to jak nowicjusz w '07....
a drugie pytanie pozostaje aktualne

10.11.2009
12:40
[11]

<<ziut>> [ Konsul ]

bump

© 2000-2025 GRY-OnLine S.A.