Article View: pl.comp.lang.vbasic
Article #104500Re: Makro - przesuń wiersze - problem:(
From: Michal AKA Miki
Date: Thu, 04 Mar 2010 22:24
Date: Thu, 04 Mar 2010 22:24
91 lines
4626 bytes
4626 bytes
Użytkownik <nothing.at.all@NOSPAM.gazeta.pl> napisał w wiadomości
news:hmj5a6$s9m$1@inews.gazeta.pl...
> Hm, to chyba się nie rozumiemy. Chce móc szybko zmieniać wiersz do którego
> mam odwołanie w pliku. Np. w całej jednej zakładce mam odwołania do innego
> pliku, po kolei np. 1 wiersz w pliku X, odwołuje się do wiersza 120 w
> pliku
> Y, wiersz 2 w pliku X odwołuje się do wiersza 121 w pliku Y, itd. I teraz
> chce przesunąć odwołania, np. o 5 wierszy, czyli chce aby wiersz 1
> odwoływał
> się do wiersza 125, wiersz 2 do 126, itd. Oczywiście chce to robić tylko w
> adresach bezwgędnych i szybko od razu wszystkie razem.
> Przepraszam, że tak łopatologicznie, ale wkurzam się, że coś co miało mi
> ułatwić pracę tak nie działa:(.
Ok, chyba zaczynam rozumiec :)
Moze ja sprecyzuje po swojemu, a ty potwierdzisz, ze o to chodzi:
twoje makro nie ma przesuwac wierszy, a jedynie WYSZUKIWAC I ZMIENIAC
definicje odwolan bezwzglednych w formulach, we wskazanym zakresie komorek,
tak?
Zmiana definicji tych odwolan bezwzglednych ma polegac na zwiekszeniu
wartosci w tym odwolaniu o zadana wielkosc.
Ok - pierwszy podstawowy blad - jesli w formule, ktora przerabiasz pojawia
sie nazwa z cyfra, np. "Arkusz2", to numerek 2 z nazwy jest zjadany.
drugi - brakuje "end if" - wewnatrz petli for - "otwierasz" 3 razy "if", a
zamykasz tylko 2 razy.
zmienilem troche twoj kod, daj znac, czy to jest to, co chcialas. Nie
testowalem zbyt dokladnie, wiec pewnie pojawi sie jakis blad...
Tylko od razu mowie, ze kod ma spora wade - mianowicie - jesli teksty typu
$23 znajda sie nie w formule, ale normalnie w wartosci komorki, to tez
zostana zmienione...
takze zadziala rowniez dla komorek z tekstem typu: "Te buty kosztuja $200"
Sub PrzesunWiersze2()
Dim Cyfra As Integer
Dim NrZnaku As Integer 'nr biezacego znaku, ktory analizujemy
Dim Znak As String 'biezacy znak
Dim Liczba As String 'liczba za znakiem $ w postaci tekstowej
Dim Nliczba As Integer 'liczba za znakiem $ w postaci INT
Dim NowaFormula As String 'formula po zmianie
Dim Zmiana As Variant 'zmienna okreslajaca przesuniecie w formule
Dim komorka As Range ' pojedyncza komorka z zadanego zakresu
Zmiana = InputBox("Podaj przesunięcie wierszy")
If Zmiana = "" Then Exit Sub
' ustala zakres do zmian
Set Zakres = Selection
For Each komorka In Selection
NowaFormula = ""
' zamiana cyfer w jednej komórce
NrZnaku = 1
Do While NrZnaku <= Len(komorka.Formula)
Znak = Mid(komorka.Formula, NrZnaku, 1)
' dodaje znak jeśli nie numeryczny
If IsNumeric(Znak) = False Then
NowaFormula = NowaFormula & Znak
Else
'modyfikuje i dodaje znaki jeśli liczbowe
If Mid(komorka.Formula, NrZnaku - 1, 1) = "$" Then
Liczba = ""
Do While IsNumeric(Mid(komorka.Formula, NrZnaku, 1))
Liczba = Liczba & Mid(komorka.Formula, NrZnaku, 1)
If NrZnaku = Len(komorka.Formula) Then Exit Do
NrZnaku = NrZnaku + 1
Loop
If Liczba <> "" Then
Nliczba = CInt(Liczba) + Zmiana
NowaFormula = NowaFormula & Nliczba
End If
Else
NowaFormula = NowaFormula & Znak
End If
End If
NrZnaku = NrZnaku + 1
Loop
komorka.Formula = NowaFormula
Next komorka
End Sub
Pozdrawiam
Michal
Technical Details
Message-ID:
<hmpbus$mcp$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<hm8bj5$q4o$1@inews.gazeta.pl> <tsdfvn3dwmkd.oljqd5i9yent.dlg@40tude.net> <hmfpti$3js$1@inews.gazeta.pl> <hmhg7q$phf$1@inews.gazeta.pl> <hmj5a6$s9m$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Michal AKA Miki" <jakistammichal@z.onetu.pl> Newsgroups: pl.comp.lang.vbasic Subject: Re: Makro - przesuń wiersze - problem:( Date: Thu, 4 Mar 2010 23:24:24 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 93 Message-ID: <hmpbus$mcp$1@inews.gazeta.pl> References: <hm8bj5$q4o$1@inews.gazeta.pl> <tsdfvn3dwmkd.oljqd5i9yent.dlg@40tude.net> <hmfpti$3js$1@inews.gazeta.pl> <hmhg7q$phf$1@inews.gazeta.pl> <hmj5a6$s9m$1@inews.gazeta.pl> NNTP-Posting-Host: mjelinski.tsi.tychy.pl X-Trace: inews.gazeta.pl 1267741468 22937 83.142.120.170 (4 Mar 2010 22:24:28 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Thu, 4 Mar 2010 22:24:28 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512 X-Priority: 3 X-RFC2646: Format=Flowed; Original X-Newsreader: Microsoft Outlook Express 6.00.2900.5512 X-User: michalakamiki X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit