Visual Basic - Szoftverfejlesztés fórum

üzenetek

hozzászólások


yahagyma
(tag)

[illegális tevékenységre buzdítás hűlt helye]


b@ndi
(tag)

Gondoltam nem nyitok uj temat, mert a cim itt is magaert beszel.
Lenne egy kicsit luzer :O kerdesem VB6-ban:
A kovetkezo egyszeru dolog miert nem mukodik? Illetve mit kellene valtoztatni?
Azt hiszem vmi object problemaja van, de ???

Dim x As Variant

Sub Macro()
x = 1
Range(R1Cx).Select
End Sub


jeges
(senior tag)

ez ugye vba?
és excelbe' van? :)
mer' gondolom, csak ott működik...

és milyen hibát ír?


b@ndi
(tag)

Igen, visual basic 6.0. es egy excel cellat akarokmegnevezni, de ugy, hogy kulso utasitasra modositani lehessen egy masik cellara.

A hibauzenete : error 1004,
Method 'Range' of object '_Global' failed


jeges
(senior tag)

a range objektumot annyira ugyan nem ösmerem, de én spec ezt a hivatkozást cells()-el csinálnám:

Sub Macro()

x = 1

Cells(1, x).Select

End Sub


[Szerkesztve]


b@ndi
(tag)

Muxik :DD
THX


jeges
(senior tag)

persze, hogy müxik ;]
ezér' nem szeretem a range objektumot: a hülye hivatkozásai miatt... :D


b@ndi
(tag)

Meg 1 kerdes?

Igy miert nem helyes megnevezni egy cellat pl?

A hiba :
error 9 subscript out of range

Activecell.Value =
:F Workbooks(''c:\ VBA\proba.xls'').Sheets(''blabla'').Cells( 1,1).Value




[Szerkesztve]


jeges
(senior tag)

teszteld le! :)
de komolyan, általába' utálok más workbookra hivatkozni, de az tuti, hogy a ''value''-ra nincs szükség a végén :)
(bár asszem, a value-val együtt is működnie kék...)

egyébként ha jól értem, először kijelölöd a cellát, majd az activecell értékét állítod?
erre sztem nincs semmi szükség, a cells() objektumra hivatkozhatsz nyugodtan kijelölés nélkül is...
azaz értékadás így néz ki:
cells(1, x)=workbooks(''példabook'').sheets(''példasheet'').cells(1,1)

vagy ha ugyanarról a sheetről:
cells(10, 10)=cells(20, 20)

lehet (de ebbe' nem vagyok biztos), hogy vmi frissítési parancsot köll még ráengedni, ha külső forrásból veszi az értéket... :U


b@ndi
(tag)

Koszi a gyors valaszt, de sajnos ez most nem muxik igy :(

Amit egyebkent el akartam erni, hogy egy cella erteket egy masik excel file-bol athelyezze. Mindezt relative, mert kb 1-2ezer cellanyi kell, ami loop-olva viszonylag egyszeru lenne.

Meg 1x thx, de mara sajnos mar mennem kell. Udv


KovacsUr
(addikt)

A Workbooknak már nyitva kell lennie, nyisd meg valamikor:
   Workbooks.Open ("Z:\Dokumentumok\XLS\fuzet.xls")
aztán válts vissza a saját workbookodra:
   ThisWorkbook.Activate
Ezután
   Workbooks("fuzet.xls").Sheets("lap").stb
(tehát már elérési út nélkül)...


jeges
(senior tag)

no, most nekem lenne egy kérdésem:
hogy lehet makró értékadást úgy definiálni, hogy két mező összege kerüljön a cellába, de úgy, hogy ne az összeg, hanem a képlet legyen a cella értéke?
azaz:
cells(x,4)=cells(x,3)+cells(x,2) érték, de ne konkrét érték, hanem a képlet kerüljön bele
előre is köszi :)


jeges
(senior tag)

no...senki? :O


jeges
(senior tag)

izé...ugyan van elkerülő megoldás, de még mindig érdekelne... :B


lao ce
(aktív tag)

ize... nem lehet egyszeruen beirni a worksheet function-t mint stringet? ugy ertem ''=sum(a1:b2)'' ?


jeges
(senior tag)

fogalmam sincs, de ezzel nem lennék sokkal előrébb, mer' ahogy írtam, nekem relatív hivatkozás kéne képletbe, azaz minden sorba a neki megfelelő sor összege kéne, kerüljön
erre még csak-csak tunnék vmi megoldást (pl. copy és paste eljárásokkal)...
a ''súlyosabb'' probléma a következő lenne:
van egy táblázat, amit egy másik sheetről töltök fel. a tábla függőlegesen csoportokra van osztva, és ezeknek a csoportoknak kéne az összegét ''beképletezni'', de az egyes csoportok rekordszáma csak a feltöltés után válik ismertté. ugyanakkor elképzelhető, hogy a táblát manuálisan köll korrigálni a kitöltés után, ezért lenne jó, ha a csoportösszegek be lennének képletezve
a probléma az, hogy nem t'om, van-e olyan függvény, ami a cells(x,y) kifejezést az általad is írt (pl. ''a6'') formátumra konvertálja. lehet, hogy külön ki kéne jelölni a range-eket (ezt a cells()-el is meg lhet tenni), elnevezni őket (pl. ''range1'', ''range2'', stb.), és így behivatkozhatók a sum függvénybe? :U

az a legnagyobb bajom, hogy így a makrófutás több percig is eltarthat, ami nem túl praktikus (kb 30 oszlop és 500-600 sor) :O


jeges
(senior tag)

:U


jeges
(senior tag)

no, hátha délután van itt vki, aki tudja a választ :U


KovacsUr
(addikt)

Formula propertyvel, pld.

Cells(Target.Row, 4).Formula = "=$C" & Target.Row & "+ $B" & Target.Row

Vagy valami ilyesmi, nem tudom, konkrétan hol akarod alkalmazni :)


KovacsUr
(addikt)

van-e olyan függvény, ami a cells(x,y) kifejezést az általad is írt (pl. ''a6'') formátumra konvertálja

A Range objektum Address() propertyje.

üzenetek