excel - zamiana tekstu na aktywną formułę

0

Dzień dobry.

Chciałam prosić o pomoc w rozwiązaniu problemu z przerabianiem zawartości komórek określonego zakresu. Musze napisać makro, które sumuje wartości podane w tabeli, niestety są one podawane w proporcjach jako tekst (rysunek 1).
Zaczęłam od stworzenia nowej tabeli, której wartość w każdej komórce poprzedziłam znakiem równości --> ="="&B2....., następnie skopiowałam tabelę i użyłam opcji wklej specjalnie (wartości). Pozostałam jednak z tabelą, która wygląda jak na obrazku nr 2. Tak jak widać w pierwszych kolumnach, kombinowałam z "Tekst jako kolumny", żeby zamiast formuły wyświetlały mi się wartości. Niestety w tym przypadku konieczne jest zaznaczanie i powtarzanie czynności dla każdej kolumny.
Czy jest jakiś inny sposób?

Z góry bardzo dziękuję za wskazówki :)

1
For Each c in Selection
   c.Formula="="&c.value
Next
0

Dziękuję!

0

Wydaje mi się, że moja pętla trwa w nieskończoność.... Jak stosuje kod w oddzielnym arkuszu wszystko działa jak należy. Po wklejeniu do formatki proces się zapętla i wiesza mi się plik. Czy mogę jakoś temu zapobiec?

1

Zaznacz tylko te komórki, krtóre chcesz zamienić, wykonaj kod. Nic więcej. Jeśli będzie trwało długo, to przed tą pętlą daj:

Application.ScreenUpdating = False

Po niej włącz odświeżanie z powrotem:

Application.ScreenUpdating = True

i jeszcze możesz przeliczanie arkusza na ręczne ustawić, czyli:

Application.Calculation = xlCalculationManual

a potem przywrócić takie, jak miałaś. (xlCalculationSemiautomatic lub xlCalculationAutomatic - raczej to drugie)

0

Dziękuję bardzo za dotychczasową pomoc. Bardzo dużo mnie nauczyła. Nie chciałabym nadużywać uprzejmości, ale wyskakuje mi błąd i siedzę od wczoraj zmieniając sposoby definiowania, zaznaczania itp. już się zniechęciłam i poddałam.....
Wszystko liczy jak trzeba (dzięki ostatniej wskazówce błyskawicznie) niestety wyskakuje mi ciągle 'run time error 1004'.
Obawiam się, że znowu rozwiązanie jest bardzo proste, a mój błąd błahy, ale nie mogę tego naprawić....

screenshot-20200318091334.png

Byłabym wdzięczna za pomoc. Obiecuję, że postaram się już zamknąć ten temat ;)

1

Zamień:

For Each c in Selection
   c.Formula="="&c.value
Next

Na:

MsgBox Selection.Address ' tylko aby sprawdzić, że dobry zakres został wybrany
For Each c in Selection
On error resume next
   c.Formula="="&c.value
if Err.Number<>0 Then MsgBox "Komórka:" & c.Address &vbNewLine & "Zawartość: " & c.Value
On error goto 0
Next

To Ci w miarę pokaże, gdzie masz problem

0

Problem rozwiązany. Bardzo dziękuję za pomoc.
Nie zdawałam sobie sprawy, że przesyłana tabela jest robiona ręcznie. Myślałam, że dane są wyciągnięte z systemu i nie ma błędów w komórkach. Jedna zawierała '. Taki mały znak, a tak dużo czasu pochłonął....
Jeszcze raz dziękuję :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1