otrzymałem .xlsb
plik, który odwołuje się do strony trzeciej, którego nie mam. Arkusz kalkulacyjny używa funkcji zdefiniowanej w tym dodatku w niektórych komórkach arkusza, a te komórki mają #NAME?
błędy.
Zdefiniowałem funkcję o tej samej nazwie i parametrach w VBA. The #NAME?
błędy nadal się utrzymują i działa tylko wtedy, gdy „dotknę” komórki. Co przez to rozumiem, kopiuję i wklejam tę samą formułę.
Czy istnieje bardziej elegancki sposób zastąpienia (wyśmiewania) nieistniejącej funkcji?
Odpowiedzi:
2 dla odpowiedzi № 1Aby pominąć # NAZWĘ? błąd, znajdź i zastąp wszystkie formuły zawierające nazwę UDF o tej samej nazwie UDF.
dim myudf as string, w as long
myudf = "=MyUdf("
for w=1 to worksheets.count
worksheets(w).cells.replace(what:=ucase(myudf), replacement:=lcase(myudf), _
matchcase:=false, lookat:=xlPart
next w
0 dla odpowiedzi nr 2
Czy skoroszyt ma włączoną ręczną kalkulację? Jeśli tak, spróbuj przełączyć się na automatyczne (Narzędzia> Opcje> Obliczenia). Może to zmusić go do ponownego obliczenia zamiast „dotknięcia” każdej komórki.