Problem :
Podczas kopiowania komórki z Excela poza program, cudzysłowy są dodawane automatycznie.
Szczegóły :
używam programu Excel 2007 na komputerze z systemem Windows 7. Jeśli mam komórkę o następującej formule:
="1"&CHAR(9)&"SOME NOTES FOR LINE 1."&CHAR(9)&"2"&CHAR(9)&"SOME NOTES FOR LINE 2."
Dane wyjściowe w komórce (sformatowane jako liczba) wyglądają następująco w programie Excel:
1SOME NOTES FOR LINE 1.2SOME NOTES FOR LINE 2.
Dobrze i dobrze. Ale jeśli skopiuję komórkę do innego programu, takiego jak notatnik, dostaję irytujące podwójne cudzysłowy na początku i na końcu. Zauważ, że zakładki utworzone przez "CHAR (9)" są zachowane, co jest dobre.
"1 SOME NOTES FOR LINE 1. 2 SOME NOTES FOR LINE 2."
Jak mogę zapobiec wyświetlaniu tych podwójnych cudzysłowów podczas kopiowania do innego programu? Innymi słowy, czy mogę zapobiec automatycznemu dodawaniu ich, gdy komórka jest kopiowana do schowka?
Odpowiedzi:
Jeśli spróbujesz wkleić do Word-Pad, Notepad ++ lub Word, nie miałbyś tego problemu. Aby skopiować wartość komórki jako czysty tekst, aby osiągnąć to, co opisujesz, musisz użyć makra:
W skoroszycie, w którym chcesz to zastosować (lub w pliku Personal.xls, jeśli chcesz używać w kilku skoroszytach), umieść następujący kod w standardowym module:
Kod:
Aby dodać standardowy moduł do projektu (skoroszytu), otwórz VBE za pomocą Alt+, F11a następnie kliknij prawym przyciskiem myszy skoroszyt w lewym górnym oknie projektu i wybierz Wstaw> Moduł. Wklej kod do okna modułu kodu, które otworzy się po prawej stronie.
Wróć do programu Excel, przejdź do Narzędzia> Makro> Makra i wybierz makro o nazwie „CopyCellContents”, a następnie wybierz Opcje z okna dialogowego. Tutaj możesz przypisać makro do klawisza skrótu (np. Jak CTRL+ Cdo normalnej kopii) - ja użyłem CTRL+ Q.
Następnie, gdy chcesz skopiować pojedynczą komórkę do Notatnika / gdziekolwiek, po prostu zrób Ctrl + q (lub cokolwiek wybierzesz), a następnie wykonaj CTRL+ Vlub Edycja> Wklej w wybranym miejscu docelowym.
Moja odpowiedź jest skopiowana (z kilkoma dodatkami) stąd: tutaj
EDYCJA : (z komentarzy)
Jeśli nie możesz znaleźć biblioteki Microsoft Forms 2.0 na liście odniesień, możesz spróbować
C:\Windows\System32\FM20.dll
(32-bitowe Windows) (dzięki @JWhy)C:\Windows\SysWOW64\FM20.dll
(w wersji 64-bitowej)źródło
Właśnie miałem ten problem i owinięcie każdej komórki
CLEAN
funkcją naprawiło to za mnie. Powinno to być stosunkowo łatwe do zrobienia=CLEAN(
, wybierając komórkę, a następnie automatycznie wypełniając resztę kolumny. Po tym, jak to zrobiłem, wklejanie do Notatnika lub innego programu nie zawierało już zduplikowanych cytatów.źródło
Najpierw wklej go do programu Word, a następnie możesz wkleić go do notatnika, a pojawi się bez cudzysłowów
źródło
Jeśli chcesz zaznaczyć wiele komórek i skopiować ich wartości do schowka bez tych irytujących cytatów, przydatny może być następujący kod. Jest to rozszerzenie kodu podanego powyżej od użytkownika 3616725.
źródło
Moim rozwiązaniem, gdy trafiłem na problem z cudzysłowami, było usunięcie powrotów karetki z końca tekstu moich komórek. Z powodu tych powrotów karetki (wstawionych przez program zewnętrzny) Excel dodawał cudzysłowy do całego ciągu.
źródło
Możliwy problem związany z odpowiedzią od „user3616725”: Używam
Windows 8.1 i wydaje się, że jest problem z połączonym kodem VBA z zaakceptowanej odpowiedzi od „user3616725”:
Szczegóły:
Uruchamiając powyższy kod i wklejając schowek do komórki w Excelu, otrzymuję dwa symbole złożone z kwadratów ze znakiem zapytania w środku, tak: ⍰⍰. Wklejanie do Notatnika nawet niczego nie pokazuje.
Rozwiązanie:
Po dłuższych poszukiwaniach znalazłem inny skrypt VBA od użytkownika „Nepumuk”, który korzysta z Windows API . Oto jego kod, który w końcu zadziałał dla mnie:
Aby użyć go w taki sam sposób jak pierwszego kodu VBA z góry, zmień Sub „Beispiel ()” z:
Do:
I uruchom go za pomocą menu makr programu Excel, jak sugerował „user3616725” z zaakceptowanej odpowiedzi:
Edycja (21 listopada 2015):
@ komentarz od "dotctor":
Nie, to naprawdę nie jest nowe pytanie! Moim zdaniem jest to dobry dodatek do zaakceptowanej odpowiedzi, ponieważ moja odpowiedź dotyczy problemów, z którymi możesz się spotkać korzystając z kodu z zaakceptowanej odpowiedzi. Gdybym miał więcej reputacji, stworzyłbym komentarz.
@ komentarz od „Teepeemm”:
Tak, masz rację, odpowiedzi zaczynające się od tytułu „Problem:” są mylące. Zmieniono na: „Możliwy problem w związku z odpowiedzią od„ user3616725 ”:”. Jako komentarz z pewnością napisałbym znacznie bardziej zwięźle.
źródło
„Jeśli chcesz wybrać wiele komórek i skopiować ich wartości do schowka bez tych irytujących cudzysłowów” ( bez błędów w rozwiązaniu Multi-Cells Petera Smallwooda) „poniższy kod może być przydatny”. Jest to rozszerzenie kodu podanego powyżej od Petera Smallwooda (który „jest rozszerzeniem kodu podanego powyżej od użytkownika 3616725”). To naprawia następujące błędy w rozwiązaniu Petera Smallwooda:
UWAGA: Nadal nie będzie można kopiować znaków osadzonych w komórce, które spowodowałyby wyjście z pola docelowego, do którego wklejasz tę komórkę (tj. Tab lub CR podczas wklejania do okna edycji tabeli dostępu lub SSMS).
źródło
Aby zachować podziały wierszy podczas wklejania w notatniku, zamień tę linię w makrze:
przez:
źródło
Skorzystaj z poniższego wzoru
i dostaniesz to, czego chcesz ;-)
źródło
Możesz to zrobić w makrze Excela przez VBA, wysyłając wyniki do pliku:
A jeśli chcesz umieścić nazwy plików i zawartość w wielu plikach, oto krótki fragment, który pozwala uniknąć podwójnych cudzysłowów wokół danych wyjściowych.
źródło
źródło
Uwaga: przyczyną cudzysłowów jest to, że kiedy dane przenoszone są z programu Excel do schowka, są one w pełni zgodne ze standardami CSV, które obejmują wartości cytowania zawierające tabulatory, nowe wiersze itp. (A znaki podwójnego cudzysłowu są zastępowane dwoma znakami cudzysłowu)
Zatem innym podejściem, szczególnie jak w przypadku OP, gdy tabulatory / nowe linie wynikają ze wzoru, jest użycie alternatywnych znaków dla tabulatorów i twardych zwrotów. Używam ascii Unit Separator = char (31) dla tabulatorów i ascii Record Separator = char (30) dla nowych linii.
Następnie wklejenie do edytora tekstu nie będzie wiązało się z dodatkowymi regułami CSV i możesz wykonać szybkie wyszukiwanie i zamienić, aby ponownie je przekonwertować.
Jeśli karty / nowe linie są osadzone w danych, możesz przeprowadzić wyszukiwanie i zamienić w programie Excel, aby je przekonwertować.
Niezależnie od tego, czy używasz formuły, czy zmieniasz dane, kluczem do wyboru separatorów nigdy nie jest używanie znaków, które mogą znajdować się w rzeczywistych danych. Dlatego polecam postacie ascii niskiego poziomu.
źródło
Możliwe jest również usunięcie tych podwójnych cudzysłowów poprzez umieszczenie wyniku w funkcji „Wyczyść”.
Przykład:
Wynik zostanie wklejony bez cudzysłowów w innych programach, takich jak Notepad ++.
źródło