napisał: jamanow postów: 69
umieszczony: 3 maja 2012 20:48
|
|
W Szwecji powiedziano by "Bingo !!! Jag älskar dig Trebor" Dzieki |
|
napisał: Trebor postów: 1209
umieszczony: 3 maja 2012 19:47
edytowany: 3 maja 2012 19:48
|
|
Próbowałeś z błędem xlUnlockedFormulaCells Range(kom.Address).Errors(xlUnlockedFormulaCells).Ignore = True |
|
napisał: jamanow postów: 69
umieszczony: 3 maja 2012 19:36
|
|
kod który podałeś ostatnio niestety nie wygasza trójkącików.
Dla uściśnienia:
komórki zawierają kod:
=OM(LETARAD( $B33;smst;3)>0;LETARAD( $B33;smst;3);"")
Wyświetlany komunikat:
Komorka zawiera formule i nie jest zablokowana w celu ochrony przed niezamierzona zmiana. |
|
napisał: Trebor postów: 1209
umieszczony: 3 maja 2012 18:46
edytowany: 3 maja 2012 18:47
|
|
Wypróbuj kod:
Range(kom.Address).Errors(xlInconsistentFormula).Ignore = True
Poniżej lista możliwych błędów:
xlEvaluateToError The cell evaluates to an error value.
xlTextDate The cell contains a text date with 2 digit years.
xlNumberAsText The cell contains a number stored as text.
xlInconsistentFormula The cell contains an inconsistent formula for a region.
xlOmittedCells The cell contains a formula omitting a cell for a region.
xlUnlockedFormulaCells The cell which is unlocked contains a formula.
xlEmptyCellReferences The cell contains a formula referring to empty cells. |
|
napisał: jamanow postów: 69
umieszczony: 3 maja 2012 17:05
edytowany: 3 maja 2012 17:35
|
|
Kod, który mi zapodałeś działa doskonale, ale po jego wyegzekwowaniu pojawia się błąd wywołany kontrola błędów w tle (trójkącik w lewym górnym rogu celi). Czy jest możliwość wygaszenia tego bez ingerencji użytkownika?
jedyne co znalazlem to:
Application.ErrorCheckingOptions.BackgroundChecking = False
Jest jakiś sposób który ignoruje błędy tylko na wybranych celach? |
|
napisał: jamanow postów: 69
umieszczony: 18 kwietnia 2012 20:38
edytowany: 18 kwietnia 2012 20:38
|
|
Kolejne dzięki. |
|
napisał: Trebor postów: 1209
umieszczony: 18 kwietnia 2012 19:12
edytowany: 18 kwietnia 2012 19:18
|
|
Jednak to nie działa właściwie.
Z jakiego powodu to musi być robione za jednym razem?
Jeśli można w pętli to może tak:
Sub formulaCopy()
Dim kom As Range
For Each kom In Sheets("Detalj").Range("C5:G11,C14:G14,J6")
Range(kom.Address) = kom.Formula
Next kom
End Sub |
|
napisał: jamanow postów: 69
umieszczony: 18 kwietnia 2012 18:13
edytowany: 18 kwietnia 2012 18:15
|
|
na pewno wszystko jest OK, tylko ze moje umiejętności są zbyt male ażeby to zastosować.
jak ożyć to co proponujesz w konkretnym przykładzie, gdzie to wsadzić?
Sub formulaCopy()
Sheets("Detalj").Range("C30:I38").Copy
ActiveSheet.Range("C30:I38").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Range("C30").Select
End Sub |
|
napisał: Trebor postów: 1209
umieszczony: 18 kwietnia 2012 16:34
edytowany: 18 kwietnia 2012 16:37
|
|
Np. takim zapisem:
Range("C5:G11,C14:G14,J6").Offset(11, 0) = Range("C5:G11,C14:G14,J6").Formula
W tym przypadku formuły zostaną przepisane bez zmiany zakresów. |
|
napisał: jamanow postów: 69
umieszczony: 18 kwietnia 2012 10:32
|
|
Przepraszam jerzeli wyrazilem sie niezbyt wyraznie.
Chodzi mi o skopiowanie Formuly z kilku obszarow jednoczesnie. np:
Range("C5:G11,C14:G14,J6").Select Zaprezentowany przyklad robi to na jednym obszaze
Range("C30:I38").Copy |
|
napisał: grizz postów: 9
umieszczony: 17 kwietnia 2012 22:50
edytowany: 17 kwietnia 2012 22:53
|
|
Chodzi o to, że w różnych range'ach? |
|
napisał: jamanow postów: 69
umieszczony: 17 kwietnia 2012 22:04
|
|
Mam kod który kopiuje i wkleja formule, kod dotyczy jednego obszaru.
W jaki sposób zrobić jeżeli chce dokonać tej samej czynności na kilku obszarach jednocześnie?
typ: ("C30:I38,B41:E41,G1")
Sheets("Detalj").Range("C30:I38").Copy
ActiveSheet.Range("C30:I38").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Range("C30").Select |
|
wstecz 1 dalej wszystkich stron: 1
|