Hirdetés
- Nikon Z MILC fényképezőgépcsalád
- Home server / házi szerver építése
- Milyen processzort vegyek?
- Kétszáznál is több játékhoz hozta el az FSR Redstone-t az új AMD Software
- Androidos tablet topic
- OLED TV topic
- Billentyűzet gondom van
- Milyen TV-t vegyek?
- Kisétvágyú Radeon RX 9060 XT-t hozott az AMD
- Milyen SSD-t vegyek?
Új hozzászólás Aktív témák
-
Zalanius
tag
válasz
Bobrooney
#3050
üzenetére
Ez félig bugnak tűnik, de található rá magyarázat. A szürke popup kivételével sikerült is reprodukálnom. A cellához tartozó link nem egy egyedi string érték, hanem egy collection. Két cella egyesítésekor az első cella linkje marad csak meg, a többié elveszik, eddig rendben. Ha ezután módosítod a grafikus nézetben a linket, akkor a háttérben egy .Add() függvényt használhat az Excel. Ez csak tipp, de eléggé gyanús. Mi történik ezután: az egyesített cella első részcellájában KETTŐ link lesz, az (1) indexen a régi, a (2) indexen az új. A többi részcellában eddig semmi nem volt, ezért oda az (1) indexen az új kerül.
Tegyük fel, hogy az A oszlopban vannak a linkes cellák, némelyik egyesített. Ekkor egy teljeskörű teszthez például bevethető ez, most 4 sort feltételezve:
Dim rowcount%
rowcount = 4
For i = 1 To rowcount
If Range("A1").Offset(i - 1, 0).Hyperlinks.Count > 0 Then
For j = 1 To Range("A1").Offset(i - 1, 0).Hyperlinks.Count
MsgBox Range("A1").Offset(i - 1, 0).Hyperlinks(j).Address, vbOKOnly, _
Range("A1").Offset(i - 1, 0).AddressLocal & ", index: " & j & _
", full count: " & Range("A1").Offset(i - 1, 0).Hyperlinks.Count
Next
End If
NextHa a problémádat jól leírja a fenti, és VBA-ban kell feldolgoznod a linkeket, akkor a Count tulajdonságot kell indexként használni, és így mindig a legutoljára beállított linket olvassa a kód.
Persze van egy olyan olvasata is ennek az enyhén bugos helyzetnek, hogy formailag szép dolog az egyesített cella, de amint a tábla célja nem a külsőségekről szól, hanem valamilyen automatizált feldolgozásról, ott részemről csak felesleges nyűg.
-
Zalanius
tag
válasz
Bobrooney
#3045
üzenetére
Ez elég furcsa, efféle url encodingot automatikusan nem kellene kapnod, kipróbáltam saját fájlban is, simán benne hagyta a szóközöket. Van egyébként olyan beépített függvény Encodeurl néven, ami ilyen átalakításokat csinál, de a fordított irányról nem tudok (2013-assal bezárólag). Kerülő úton lehet megpróbálni, mondjuk cserékkel, lásd például itt.
-
Zalanius
tag
válasz
Bobrooney
#3042
üzenetére
Kipróbáltam két oszloppal, 10 ezer sorban, de nehezítésképpen úgy, hogy az első 5000-ben csak X volt mindenhol, és az egyik gyümölcsnél később is csak X volt. Nem is igazán mérhető a futásidő, fél másodpercnél is kevesebb. Tehát vagy rengeteg oszlopod lehet, vagy sok százezer sor, vagy még egyéb tényezők. De a 10 perc mindenképpen túlzás.
Tudom h nem kértél konkrétumot, de csak bemásolok ide egy rövidke scriptet, egyszerű megközelítésben, valami támpontot adhat azért.
Option Base 1
Sub t()
Dim gimilc()
Dim vannemX()
Dim n%, i%
Dim g As String
n = 1
ReDim Preserve gimilc(n)
ReDim Preserve vannemX(n)
gimilc(1) = Cells(2, 1).Value
vannemX(1) = False
If Cells(2, 2).Value <> "X" Then
vannemX(1) = True
End If
For i = 3 To 10000
g = Cells(i, 1).Value
Dim gindex%
gindex = -1
For j = 1 To n
If gimilc(j) = g Then
gindex = j
Exit For
End If
Next
If gindex = -1 Then
n = n + 1
ReDim Preserve gimilc(n)
ReDim Preserve vannemX(n)
gimilc(n) = g
vannemX(n) = False
If Cells(i, 2).Value <> "X" Then vannemX(n) = True
Else
If vannemX(gindex) = False Then
If Cells(i, 2).Value <> "X" Then vannemX(gindex) = True
End If
End If
Next
End Sub -
csaszizoltan
csendes tag
válasz
Bobrooney
#3042
üzenetére
Szia!
Gondolom az egyes celláinak elérése nem gyors vagy minden X találat után indítasz egy új átfésülést, ami fölösleges ezért
Rakd tömbbe a gyümölcsneveket (ha sokféle van, kb 100-nál több akkor bináris fába, ahol a fa egyes mutatói még két tömbben helyezkednek el tömbindexként) és másik két ugyanakkora tömbbe, hogy van X benne és van nem X benne. Ez az algoritmus egyszer fog végigfutni a munkalapon.
Érdekelne majd a "gyümölcsökre" megvalósított algoritmus, hogy beleszólhassak a gyorsabb futás érdekében.
Üdv
-
alexy92
aktív tag
-
Zsolt_974
tag
válasz
Bobrooney
#2670
üzenetére
Bocs, hogy nem válaszoltam, de nem volt rá időm.

Igen közbe rájöttem én is, hogy miért csak a Com1-et találja meg és a Com9-et miért nem. Azért, mert a Com9 egy usb-s eszköz, "virtuális soros port".

Viszont ezzel:
Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity")sikerült megtalálni az USB-Serial CH340(COM9)-et, de sajnos sok PnP eszköz, erőforrások is belekerült a listába.

-
Zsolt_974
tag
válasz
Bobrooney
#2668
üzenetére
Így indul a program:
A belépés gombra klikkelve:
Ok gombra klikkelve és utána a "Com port lenyílóban ezek láthatók: Com1, Com9, Kommunikációs port(Com1)":
A program kódban az ehhez tartozó sorok:
Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_SerialPort")
_______________________________________________________________________________________Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _Button1.Click
For Each queryObj As ManagementObject In searcher.Get()
MsgBox(queryObj("Name"))
Dim textt As String = queryObj("Name").ToString
RichTextBox1.Text = textt
ComboBox1.Items.Add(textt)Next
ComboBox1.Items.AddRange(IO.Ports.SerialPort.GetPortNames())
End SubVégül is tegnap már ott jártam, hogy a ComboBox-ba is beírja, de sajnos csak a
Kommunikációs port(COM1). Az USB-SERIAL CH340(COM9) nem sikerül kiíratni.
A két port közül miért csak a Kommunikációs port(COM1)-et találja meg? -
Zsolt_974
tag
válasz
Bobrooney
#2666
üzenetére
Köszönöm a gyors választ.

Sajnos ezzel is csak a következőt kapom vissza, hogy
COM 1
COM 9Viszont ezt találtam:
[link]Ez egy MsgBox-ban vissza adja ezt:

Sajnos a ComboBox1-be nem tudom belevarázsolni és csak a Com 1 jelenik meg a Com 9 nem.
Én csak hobbiszinten programozgatok.
Viszont kitartóan. 
Zsolt
-
DasBoot
aktív tag
válasz
Bobrooney
#2654
üzenetére
Köszönöm a választ. Nem is az volt a célom, hogy egyből kapjak választ. Szóval a képen a bekarikázott részeket szeretném elmenteni, de külön-külön. A konkrét dolog, hogy egy PLC progarmban a letrák rajzolását szeretném megoldani. A mentett alakzatokat később egy CommandButton-nal szeretném a megfelelő helyre beilleszteni. Iagzándiból a papíron való rajzolást szeretném kiváltani.
-
martonx
veterán
válasz
Bobrooney
#2482
üzenetére
Több lehetőséget is látok, gondolom ezeket lenne érdemes megnézned makró rögzítővel:
1. Adatok fülön kiválasztod a Remove Duplicates (bocs, nincs magyar excelem) opciót.
2. Adatok fülön kiválasztod az Advanced filter-t. Ennél meg tudod adni, hogy csak a unique elemeket másolja / jelenítse meg. Bár nálam ez a mini példámban nem igen csinált semmit, de elvileg ennek is mennie kellene. -
vilag
tag
válasz
Bobrooney
#2164
üzenetére
Teljesen igazad van, úgy (ahogy régi matektanárom mondta) valóban elegánsabb. Holnap ha bemegyek a céghez át is írom.
A programot még 2010-ben kezdtem írni, akkor még fele ennyit sem tudtam
Azóta persze sokat tanultam és ha valamire találok elegánsabb megoldást akkor át szoktam írni.
-
vilag
tag
válasz
Bobrooney
#2045
üzenetére
Volt nekem egy MsgBox-om amit gondoltam egy öt perces munkával lecserélek egy sajátra (persze némi plusz funkciót is rá akartam tenni)....
... azóta eltelt mondjuk egy hét, meg rászántam már kb. 12-13 órát és most tartok ott, hogy lehet, hogy működőképes lesz a dolog....
...de az is lehet, hogy csak én vagyok ennyire béna

-
válasz
Bobrooney
#1903
üzenetére
callbyname azért nem működik, mert pont a másik irányból közelíti meg a kérdést, mint amit te szeretnél:
Nem egy függvényt vált ki (mint egy eseménykezelő), hanem egy már megírt függvényt lehet vele meghívni úgy, hogy nem a függvényt hívod meg közvetlenül, hanem átadod a környezetnek a függvény nevét és az argumentumokat és hagyod, hogy a futtatókörnyezet megkeresse neked. De ehhez fontos, hogy a függvények már készen legyenek. Nálad meg ugye az volna a lényeg, hogy a függvényeket ne kelljen megírni negyvenszer... -
válasz
Bobrooney
#1898
üzenetére
Mármint mi a probléma? Megcsinálsz mindent az első válasz alapján:
1) Csinálsz egy classt (még a neve is oda van írva - TextBoxEventHandler)
2) Belemásolod az újonnan készített class-ba az első adag kódot
3) Belelépsz a formod kódszerkesztőjébe
4) Belemásolod a második kódot (persze, ha volt már valami kitöltve a UserForm_Initialise-ben, akkor hozzácsapod az elejéhez/végéhez)
5) A TextBoxEventHandlerclass kódszerkesztőjében a Private Sub m_oTextBox_Change() -et szerkeszted a kedved szerint...Hol akadtál egyáltalán el?
Új hozzászólás Aktív témák
- Milyen autót vegyek?
- Nikon Z MILC fényképezőgépcsalád
- Építő/felújító topik
- Nem hiszed el, mi a Firefox új célja
- Home server / házi szerver építése
- Milyen processzort vegyek?
- Kétszáznál is több játékhoz hozta el az FSR Redstone-t az új AMD Software
- BestBuy topik
- Automata kávégépek
- Hardcore café
- További aktív témák...
- ID Cooling Frozn A610 minden tartozékával, jótállással
- NAGYON SZÉP!!! Dell Latitude 7420 i7-1185G7 16 GB RAM 512 GB SSD Magyar v.bill
- P15 Gen1 15.6" FHD IPS i7-10850H RTX 3000 32GB 1TB NVMe ujjlolv IR kam gar
- SZÉP ÁLLAPOT!!!! Dell Latitude 7490 i5-8350U 16GB 512GB SSD Magyar v.bill
- AKCIÓ!!! HP ZBook Power 15 G8 Mobile Workstation i7-11850H 32GB 1000GB Nvidia RTX A2000
- Samsung Galaxy S22 Ultra 5G 512GB, Kártyafüggetlen, 1 Év Garanciával
- Saeco Talea Giro Automata kávégép 6 hónap Garancia Beszámítás Házhozszállítás
- HIBÁTLAN iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA -Kártyafüggetlen, MS3614
- HIBÁTLAN iPhone 15 Plus 256GB Green-1 ÉV GARANCIA - Kártyafüggetlen, MS4264, 92% Akksi
- BESZÁMÍTÁS! ASUS TUF B760M i9 14900K 32GB DDR4 1TB SSD RX 7900 XTX 24GB ZALMAN Z1 Plus Seasonic 850W
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest





Viszont kitartóan. 


![;]](http://cdn.rios.hu/dl/s/v1.gif)


