Určite priložte súbor. Aby ste ho mohol vložiť sem, musíte sa zaregistrovať = 20 sekúnd. V najhoršom prípade vložte link na Váš súbor na niektorom z internetových úložísk, lebo aj to je lepšie, ako žiadna príloha. Ľahšie sa Vám dostane pomoci.
Presne tak - Application.Volatile. Aspoň niekto sa aktívne snaží ...
Môj tip z pamäti z mobilu:
Function CountBold(RNG as Range) as Long
Dim Bunka as Range
For Each Bunka in RNG.Cells
If Bunka.Font.Bold Then CountBold = CountBold + 1
Next Bunka
End Function
Ale je to len tip...
A načo tam máte vlookup ?
To si robíte srandu ?
Veď to makro použijete ako chcete, na odstránenie znakov z akéhokoľvek reťazca. Nielen z bunky, ale aj z premennej vo Vašom kóde.
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=OdstranHovadiny(Cesta & Nazev, "-") _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
funkcia OdstranHovadiny má 2 povinné a 1 nepovinný parameter.
Hodnota - reťazec s možnými nedovolenými znakmi
Nahrad - reťazec/znak, ktorým sa má nahradiť nedovolený znak, ak je "" tak sa znak iba zmaže
Odporucane - True/False (v CZ liste je to PRAVDA/NEPRAVDA, v SK liste alebo v akomkoľvek makre je to True/False), ak sa neuvedie, alebo je False, kontroluje sa iba tých 9 znakov, ak je True skontrolujú sa všetky odporúčané znaky
To čo z funkcie vylezie použite ako chcete, či už ako parameter inej funkcie, alebo na priradenie do premennej. Návratová hodnota je upravený reťazec.
Použitie je totálne jednoduché.
Riešenie máte na inom foŕe, čo ste písal:
http://www.jaknaoffice.cz/2-forum/?id=3038
Ak nevyhovuje dané riešenie, tak Vám môžem to makro, čo ste poslal v súkromnej správe upraviť, pozeral som naň, ale nerozumiem načo tam stále čekujete veľkosť sourceRange, keď je natvrdo priradená jednobunková oblasť E26, a nerozumiem tomu čo myslíte pod "...vypisovala také konkrétní buňka...". Makro nieje nič zložitého, ale fakt by ste na prípadné skúšanie mal vytvoriť testovaciu prílohu bez interných dát, a načrtnutie požadovaného výsledku v nejakom liste.
Tým som si práve nebol istý, ako ste to myslel. To vyfarbenie a otučnenie prvých 14 stĺpcov, sa dá urobiť pomocou PF, ale 15. stĺpec nie. Na ten musí byť makro. S PF je ale problém, že ho ničí a domotáva kopírovanie a presúvanie informácií robené inak ako Vložiť Hodnotu. A to je drvivá väčšina prípadov.
Toto by Vám malo fungovať:
Private Sub Workbook_Open()
Dim CS As String, Cesta As String, Poz1 As Long, Poz2 As Long
On Error GoTo CHYBA
With ThisWorkbook
Cesta = .Path & "\zdrojová data.xls"
With .Connections("zdrojová data").OLEDBConnection
CS = .Connection
Poz1 = InStr(1, CS, "Source=") + 6
Poz2 = Len(CS) - InStr(Poz1, CS, ";Mode=") + 1
CS = Left$(CS, Poz1) & Cesta & Right$(CS, Poz2)
.Connection = CS
.Refresh
End With
End With
Exit Sub
CHYBA:
MsgBox ("Chyba pri aktualizácii zdrojovej tabuľky :" & vbNewLine & Cesta)
End Sub
Pribalte ukážkové súbory, aby bolo vidieť štruktúru. Toto vyzerá na PowerQuery.
Doupravte si podľa seba...
Function OdstranHovadiny(Hodnota As String, Nahrad As String, Optional Odporucane = False) As String
Dim i As Byte, arrN
arrN = Array(Chr(255), "/", ":", "*", "?", "„", "<", ">", "|", "#", "%", "&", "{", "}", "\")
For i = 0 To IIf(Odporucane, UBound(arrN), 9)
Hodnota = Replace(Hodnota, arrN(i), Nahrad)
Next i
OdstranHovadiny = Hodnota
End Function
Sub pokus()
MsgBox (OdstranHovadiny("abc˙d&e?f\gh ij%", "-") & vbNewLine & OdstranHovadiny("abc˙d&e?f\gh ij%", "-", True))
End Sub
? Len keď nastavíte výšku na 30, tak sa Vám nevojde aj ten text aj Zac+Kon.
Ešte som mrkol na ten PSP1 z odkazu, pozrite si toto makro. Ale je to naprd, lebo je to nekorigované OCR z nekvalitného skenu a s dosť chybami. Vypisuje to aj slová napr. za dvojbodkou, iné významy, za lomítkom, ale pritom vynecháva prípony s pomlčkou, menšie ako 3 znaky, skratky s bodkou na konci, text v zátvorkách, dvojslovné a duplicitné slová.
Link
Sub postup()
Dim Radek As Long, Posledny As Long, Text1 As String
Radek = ActiveCell.Row
Posledny = Worksheets("report").Cells(Rows.Count, 11).End(xlUp).Row
If Posledny < Radek Then Exit Sub
If Posledny = Radek Then
Text1 = Worksheets("report").Cells(Posledny, 11)
Else
Text1 = Join(WorksheetFunction.Transpose(Worksheets("report").Cells(Radek, 11).Resize(Posledny - Radek + 1).Value2), "")
End If
MsgBox Text1
End Sub
Takto je to bez cyklu, a s ošetrením situácie, že bude označený riadok za posledným riadkom.
Príklad s For:
Sub NeviemCo()
Dim Radek As Long, Posledny As Long, i As Long, Spoj As String
Radek = 2
With Worksheets("Hárok1")
Posledny = .Cells(Rows.Count, 1).End(xlUp).Row
For i = Radek To Posledny
Spoj = Spoj & .Cells(i, 1).Value2 'Nejaký Váš kód
Next i
End With
MsgBox Spoj 'Výsledok
End Sub
Veľa bude záležať na tom, čo presne chcete, čo robíte v cykle, ako sú usporiadané dáta a pod.
=SUBSTITUTE(SUBSTITUTE(TRIM(D6);" "&CHAR(10);CHAR(10));CHAR(10)&" ";CHAR(10))
=DOSADIT(DOSADIT(PROČISTIT(D6);" "&ZNAK(10);ZNAK(10));ZNAK(10)&" ";ZNAK(10))
Určite ste uviedol ten "ASDAS" správne ?
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.