Regularna tabela, nie trzeba 'Split', tylko mało matematyki [syntax=vb]For i = 0 To 10 r = Val(komorka) - 1 Workbooks(plik1).Worksheets(arku2).Range... & 7 + 3 * i).Resize(1, 26).Copy Workbooks("PE caly.xlsm").Worksheets("rozliczenie").Ra... & 7 + r + i * 37).PasteSpecial Paste:=xlPasteValues Next i [/syntax]
A czy nie prościej byłoby rozbić ciąg Split'em wg spacji? Powstanie 5-cio elementowa tablica, gdzie druga i czwarta wartość to nasze liczby... Przyznam że nie znałem funkcji split ale rzeczywiście to najszybszy sposób (jedna linijka kodu) i prosty w odwołaniach. ( Na marginesie - dla mniej zorientowanych - pierwszy element tablicy ma "index" 0 ) Sub...
w excelu nie ma chyba funkcji split? generalnie zostaje jakieś rekurencyjne find,left,right,mid popatrz tutaj na przykłady: https://www.ablebits.com/office-addins-b... Średnio się na tym znam, a wpakowałem się w zadanie w pracy A czy "zadanie w pracy" wymaga użycia excela? Bo widzę że nazbyt wielu ubiera swój problem...
W poprzednim temacie zastanawiałem się co do źródła ciepła: https://www.elektroda.pl/rtvforum/viewto... Tutaj konkretnie nad wyborem producenta i modelu urządzenia. Mireczki, żeby nie powielać informacji i nie wydłużać niepotrzebnie wątku, info o domu powyżej i wpierw czytamy :) Wiele osób polecało urządzenia Gree.. w 2022 roku...
Zdaje się, że wystarczy potraktować "zwykłym" Split'em. Sprawdź.
Dziękuje za informacje, ale VBA to czarna magia dla mnie, sprawdzam w wyszukiwarce tę funkcje split i prawdę mówiąc nie wiem nawet jak to ugryźć i od czego zacząć. Dla nooba takiego jak ja, użycie funkcji split graniczy z cudem, a już nie mówię o napisaniu całego skryptu. Masz racje formuły to by miały chyba kilometr.
Najprościej funkcją 'Format' [syntax=vb]'jeżeli format z kropkami (jak w poście: 24.09.2013 Magazyn.txt.) strNazwa = Format(Date, "dd.mm.yyyy") & " Magazyn.txt" sciezka = "c:\dir\subdir\" 'nie musi być jesli ścieżka taka sama Open strNazwa For Input As #1 ' sciezka & strNazwa Do Until EOF(1) = True 'i tu czytanie Input lub Line Input ze Split i pętlą...
Z czegoś ten komentarz poskładałeś. Złącz w ten sam sposób string z komórek składowych komentarza i porównaj. Jeśli używałeś znaków rozdzielających (spacja, powrót karetki, etc) możesz funkcją Split (opis w pomocy) rozdzielić tekst komentarza i porównywać w pętli z każdą komórką składową. Otrzymasz wtedy bardziej precyzyjny wynik.
Czy możesz przyjąć założenie, że każdy wpis będzie syntaktycznie poprawny? Jeżeli tak, to rozwiązanie jest proste. Załóżmy, że mamy ciąg par wartości: 1. dowolna liczba całkowita 2. ściśle określone słowa, którym jest przypisana wartość Wszystko porozdzielane np. spacjami. Bierzesz wartość z komórki, robisz split (poczytaj jak), wynik masz w tablicy...
Coś już wiemy :) Ale skoro: Próbowałem apelować do osób które tworzą raporty żeby ujednolicić dane To "ujednolić" sobie... Ja bym to zrobił tak: 1. decyzja, czy wszystko ma być z wiodącym zerem, czy nie 2. makro, które przemieli wszystkie ciągi zawierające liczby we wszystkich arkuszach do określonego w pkt.1 formatu (lub w arkuszu docelowym już po...
Można na makrach. Nawet nie będzie to skomplikowane za bardzo :) [syntax=vb]Public Function Sumuj(miejsca As String, nagrody As String) As Variant Dim mt, nt As Variant mt = Split(miejsca, ";") nt = Split(nagrody, ";") Dim x As Integer Dim licznik As Variant licznik = 0 For x = 0 To UBound(mt) If mt(x) - 1 <= UBound(nt) Then Let licznik = licznik...
Witam. Napisałem makro (excel 2010) które kopiuje pewien zakres (od A8 do kolumny E ostani zajęty wiersz) do komórki w kolumnie A pierwszy wolny wiersz w arkuszu w innym skoroszycie, problem polega na tym że chciałbym skopiować kilka zakresów (np A8 do kolumny E ostani zajęty wiersz, O8 do kolumny AK ostani zajęty wiersz, AM8 do kolumny BC ostani zajęty...
Tu nie chodzi do konca o wiedze tylko o usystematyzowanie danych. Masz tak porozwalane dane że nie tak łatwo to objąć. Przyznam że jest to dość karkołomne. To co widzi człowiek excel musi przerobić tak by on to widział. W tej tabeli jest bardzo dużo "różnych" zmiennych które raz trzeba uwzględniać a raz nie a innym razem mogą znaczyć co innego. Poniżej...
jakoś samemu mi nie idzie Nie idzie, bo co innego piszesz w #1, a co innego w #4. [syntax=vbscript]Sub Guzik() Range("A2:A4") = Split([A1], " ")(1) End Sub [/syntax]
.Parent dla ActiveWorkbook jest program Excel, wtedy zapisze w sciezku Excel'a naprosto .Path jest sciezka do pliku Split(.Name,".")(0) daje np. 'faktura' Dodano po 2 wtedy[syntax=vb]With ActiveWorkbook Selection.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=.Path & "\" & _ Split(.Name, ".")(0) & ".pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True,...
Funkcja Split().
Ile maksymalnie może być wpisanych błędów w komórkach kolumny D? Przy porannej kawie wymęczyłem, z pomocą tabelki pomocniczej, rozwiązanie dla 1-4. Dalej sobie nie wyobrażam. Jedyne co mi przychodzi do głowy, to długie ciągi rozbić na ~połowę i obrabiać w dwóch tabelkach ;) https://obrazki.elektroda.pl/3151115300_... Swoją drogą napisać...
Prawdopodobnie zaprzyjaźnisz się z funkcją split https://www.techonthenet.com/excel/formu...
Wystarczy np. taka prosta przeróbka: [syntax=vb]strPlik = Application.GetOpenFilename("Pliki Excela (*.xlsx),*.xlsx", 2) sFileName = Split(strPlik, "\")(UBound(Split(strPlik, "\"))) If strPlik = "False" Or UCase(Left(sFileName, 3)) <> "KWS" Then Exit Sub End If[/syntax]
Splitem go i policz. Np [syntax=vb]Private Sub CommandButton1_Click() Dim a As Double Dim b As Double Dim dr As Integer a = TextBox1.Value b = TextBox2.Value liczba = Split(UserForm1.ComboBox1.Value, ",") dr = Len(liczba(1)) Me.Label5.Caption = Round(a + b, dr) End Sub[/syntax]
[syntax=vb] Sub nowy() Const stn = "\\server\vers\" 'sciezka do pliku na serwerze myName = ThisWorkbook.Name klon = Split(myName, ".")(0) typ = Split(myName, ".")(1) ThisWorkbook.SaveAs klon & "_old." & typ Workbooks.Open stn & myName ThisWorkbook.Close True End Sub [/syntax]
Ciekawy pomysł :) Realizacja nie będzie raczej łatwa. Nie będę zanudzać formularzami użytkownika, więc od razu zapytam: A co z tymi nazwiskami po uzupełnieniu tabelki? Może skupić się na miejscu docelowym (InputBox, Split)?
Ja podpowiem że jak już się wząłeś za makro to jest funkcja Split która rozdziela ciągi po danym znaku/znakach np: tbl = Split(Cells(1, 1), "_") dana = tbl(0) dana2 = tbl(1) Czyli w twoim przypadku: kawalek=Split("700 x 600"," x ") Wynik=Val(kawalek(0)) * Val(kawalek(1))
Split plus ewentualnie Join ew Replace
[syntax=vbscript]Sub Liczby() ow = Cells(Rows.Count, "A").End(xlUp).Row For x = 2 To ow a = Split(Cells(x, 1), ",") b = UBound(a) For y = 0 To b Cells(x, a(y) + 2) = "X" Next Next End Sub [/syntax]
[syntax=vb] Open "C:\Plik.csv" For Input As #1 While Not EOF(1) Line Input #1, Linia a = Split(Linia, ";") Cells(x, 1) = a(1) x = x +1 Wend [/syntax] Idź tym tropem.
Trzeba sobie radzić inaczej, Np przy pomocy funkcji Dir. Pierwszy, lepszy znaleziony przykład funkcji z wywołaniem.[syntax=vb]Sub testit() myvar = FileList("C:\users\adam\") If TypeName(myvar) <> "Boolean" Then For i = LBound(myvar) To UBound(myvar) Debug.Print myvar(i) Next Else MsgBox "No files found" End If End Sub Function FileList(fldr As...
Bez głębszego badania poprawności wprowadzonych dat można np. tak: [syntax=vbscript]Sub Zakres_dat() Dim dane As String, tdane dane = Application.InputBox("Podaj zakres dat", "Wprowadzanie zakresu dat") If Len(dane) = 5 Or Len(dane) = 0 Then Exit Sub tdane = Split(dane, "-") Range("B8") = CDate(tdane(0)) Range("B9") = CDate(tdane(1)) End Sub[/syntax]
Można tak: [syntax=vbscript]Private Sub OK_Click() If NUMV = "" Then d = Split(HHMM, ":") NUMV = Format(d(0) + d(1) / 60, "#0.00") Else HHMM = Int(NUMV) & ":" & Round((NUMV - Int(NUMV)) * 60, 0) End If End Sub [/syntax]
Pętla, podstawianie (replace), porównywanie długości ciągów (len), rozbijanie ciągów (split), podstawianie, porównywanie, rozbijanie, itd. W zależności, czy warunek spełniony wstawianie wiersza, dodanie wartości, mnożenie *10, lub przepisanie. Mnóstwo kombinacji, ale do zrobienia.
(ew. makro) Pobaw się tym: [syntax=vb]Sub Podziel() For x = 1 To Cells(Rows.Count, "A").End(xlUp).Row s = Split(Cells(x, 1), "_") For y = 0 To UBound(s) Cells(x, y + 2) = s(y) Next Next End Sub [/syntax]
Przetestuj kod: [syntax=vb]Sub uzupelnij() Dim shSrc As Excel.Worksheet Dim shDest As Excel.Worksheet Dim lLstRwSrc& Dim rngTmp As Excel.Range Dim colUniq As Collection Dim vBox As Variant Set colUniq = New Collection Set shSrc = Sheets("baza") Set shDest = Sheets("PRE-ALERT") With shSrc lLstRwSrc = .Cells(Rows.Count, 1).End(xlUp).Row Set rngTmp = Range(.Cells(2,...
[syntax=vbscript]Sub Rozdziel() ow = Cells(Rows.Count, "A").End(xlUp).Row For x = 2 To ow a = Split(Cells(x, 1), ".") For y = 2 To 4 Cells(x, y) = a(y - 2) Next Next End Sub [/syntax] Trzeba tylko ustawić format kolumn B:D na tekstowy.
Jedynie odwołując się do indeksów arkuszy zamiast do nazw. Np po kolejności komórek w kolumnie. [syntax=vb]Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) arg = Split(Target.SubAddress, "!") sh = Target.Parent.Row - 1 'link w 4 wierszu dot Sheets(3) adr = arg(1) With Sheets(sh) .Visible = True .Activate .Range(adr).Select End With End...
Mały problem jest to, że różne osoby mogą być różne liczby wierszy. Jeśli Możesz zapisz tę stronę w pliku .htm i Wyślij wiadomość prywatną Dodano po 2 '2^nd' - to zdanie jest dla każdej osoby? Dodano po 2 Sprobuj [syntax=vb]Sub podzial() Dim bs As Range, bd As Range lr = Cells(Rows.Count, 1).End(xlUp).Row Set bs = Range("A1").Resize(lr) Set bd = Range("G:O")...
W VBA masz funkcję [url=https://www.techonthenet.com/excel/... do rozbicia tekstu wg zadanego separatora. Proponuję - czy funkcjami Excel, czy w VBA - rozbić sobie ten długi ciąg na 3-4 kolumny. Potem użyć wspomnianych funkcji do ponownego połączenia 3-4 kolumn w jeden ciąg "po nowemu" (bądź "po staremu", zależy, który ciąg chcesz...
Ponieważ dane które pobierasz masz rozdzielone tabulatorem, wystarczy taka prosta przeróbka: [syntax=vb]Private Sub CommandButton1_Click() ComboBox1.Clear ComboBox2.Clear Dim InFile As Integer InFile = FreeFile plik_txt = Application.GetOpenFilename("Pliki txt(*.txt),*txt") Open plik_txt For Input As InFile While Not EOF(InFile) Line Input #InFile,...
Jak widać nie każdy lubi łowić ryby ;P Zwiększasz tylko numer dla ostatniej pozycji - dla VBA to co masz w komórce nie jest liczbą,a tekstem. Musisz go najpierw rozdzielić funkcją Split() po myślniku, następnie w ostatnim elemencie tablicy zwiększyć liczbę o jeden i na koniec - "skleić" tablicę na powrót w wymaganym formacie. Jak przedmówca wspomniał...
Dodano po 19 Excel / VBA / wstawianie i kopiowanie wierszy z rozdzieleniem wartości
Można umieścić kod w ThisWorkbook przy zdarzeniu Open. Żeby zabezpieczyć plik przed otwarciem bez makr można ustawić na kluczowe arkusze atrybut VeryHidden (z poziomu edytora VB) a widoczny zostawić dodatkowy pusty arkusz. Przy starcie jeśli warunki są spełnione wystarczy zamienić atrybuty. Tu konieczne hasło ochrony VBA. Przy zamknięciu ustawić na...
Blokowanie uzyskasz poprzez założenie hasła. Numerowanie komentarzy poniżej. [syntax=vbscript]Private Sub Worksheet_Change(ByVal Target As Range) Dim a As String If Not Application.Intersect(Range("A1:C10"), Range(Target.Address)) Is Nothing Then i = Environ("USERNAME") & " <" & Now & ">" & vbNewLine & Target & vbNewLine...
Funkcja Split jest dokładnie opisana w pomocy Excela i w [url=http://msdn.microsoft.com/en-us/lib... W załączniku dwie funkcje użytkownika plus to co wczoraj naskrobałem.
Ode mnie propozycja połączenia klasycznej formuły z funkcją UDF, która jest bardzo prostą adaptacją funkcji VBA Split: =JEŻELI.BŁĄD(WYSZUKAJ("żżż&... Jeżeli brak tekstu spełniającego...
Nieco w tom stylu [syntax=vb] Sub etapy() Dim r&, x$, y$ r = 2 While Cells(r, 1) <> Empty x = Cells(r, 3) y = Replace(x, ";", "") Cells(r, 3) = Trim(Split(x, ";")(0)) For i = 1 To Len(x) - Len(y) y = Trim(Split(x, ";")(i)) If Len(y) > 0 Then r = r + 1 Rows(r).Insert Cells(r, 1) = Cells(r - 1, 1) Cells(r, 3) = y End If Next r = r + 1 Wend...
Niezbyt jasno sformułowałeś to pytanie. Co to jest wskazana kolumna? Jeśli chodzi o adres komórki, z którego chcesz odczytać literę kolumny jako String, to np. tak: [syntax=vbnet]Function LitKolumny(rng As Range) As String LitKolumny = Split(rng.Address, "$")(1) End Function [/syntax]Wywołanie w arkuszu byłoby np. [syntax=text]=LitKolumny(B4)[/syntax]wyn...
Witam [syntax=vbscript]Sub dodaj() a = Split(Range("A1"), Chr(10)) For c = 0 To UBound(a) Suma = Suma + Val(a(c)) Next MsgBox Suma End Sub[/syntax] albo [syntax=vbscript] Sub dod MsgBox Evaluate(Replace(Trim(Range("A1")), Chr(10), "+")) End Sub [/syntax]
[syntax=vbscript]Sub Podziel() Set a = Sheets("Arkusz2") Sheets("Arkusz1").Select y = 1 ow = Cells(Rows.Count, "A").End(xlUp).Row For x = 2 To ow a.Cells(y, 1) = Cells(x, 1) p1 = Split(Cells(x, 2), "|") p2 = Split(Cells(x, 3), "|") b = UBound(p1) For i = 0 To b a.Cells(y, i + 2) = p1(i) a.Cells(y, i + b + 3) = p2(i) Next If b = 0 Then a.Cells(y, 2)...
[syntax=vbscript]Function DzienWolny(Data As Date) As Boolean Wielkanoc = WorksheetFunction.Floor(DateSerial(Year(... 5, Day(Minute(Year(Data) / 38) / 2 + 56)), 7) - 34 s = "01/01,01/06,05/01,05/03,06/11,08/15,11/... a = Split(s, ",") For x = 0 To UBound(a) b = Split(a(x), "/") d = DateSerial(Year(Data), b(0), b(1)) If d = Data Then...
W sposobie formatowania nic nie zmieniałem. Dodałem funkcję UDF Daty, która zamienia zapis w kolumnie H na tablicę dat, która jest potem używana do definicji reguł formatowania warunkowego. Akceptowalne zapisy w kolumnie H: Pojedyncza data w formacie: d.m.rrrr (z dwiema kropkami) Ciągły przedział dni zapisany z kreską: d-d.m.rrrr (jeden łącznik, dwie...
Ile cyfr, czy ile liczb? W temacie podajesz cyfry, w treści liczby. Jeżeli liczby, to: [syntax=vbscript]Function IleLiczb(Komorka As String) As Integer IleLiczb = UBound(Split(Komorka, ",")) + 1 End Function [/syntax] Jeżeli cyfry, to: [syntax=vbscript]Function IleCyfr(Komorka As String) As Integer i = Len(Komorka) For x = 1 To i a = Asc(Mid(Komorka,...
split samsung split podłączyć split python
rozładować akumulator mitsubishi restartuje ładowanie ładowanie przenieść oprogramowanie
bateria roweru panasonic bateria roweru panasonic
Jura Z5 - Część zmielonej kawy nie jest zaparzona Zmiana temperatury z 52°C na 38°C - przyczyny