2012-11-28 25 views
5

W moim bieżącym kodzie VBA, mam zapytanie, w którym używam Chr(34), aby umieścić cudzysłowy między niektórymi z moich zmiennych.Cudzysłów w VBA

Zastanawiam się, jakie alternatywy istnieją w tym. To jest proste pytanie, wiem, ale nie miałem żadnych sukcesów z powtarzających cudzysłowie jak ten

" & zmiennego łańcucha tutaj & "

Mój kod jest niechlujny dla jednego i nie zrozumiałe dla ludzi, którzy nie są zaznajomieni z VBA:

comboService = Chr(34) & Me.Combo8.Value & Chr(34) 

również ten nie pracował:

comboService = """" & Me.Combo8.Value & """" 

Czy możesz mi powiedzieć dlaczego?

Z góry dziękuję.

+3

To: '" "" "& Me.Combo8.Value &" "" "' działa w VBA. Jaki błąd lub problem dostałeś? – RBarryYoung

+0

Czy możesz dodać bardziej szczegółowy przykład. Nie jest jasne, ile cudzysłowów chcesz dodać. – brettdj

+0

Przepraszam, właśnie poprawiłem mój błąd. Chcę tylko dodać 1 znak cudzysłowu. Używam wartości zmiennej comboService w kwerendzie. –

Odpowiedz

5

to:

comboService = """ & Me.Combo8.Value & """ 

jest to, co pisał, ale trzeba dodać dodatkowy cudzysłów, aby dodać dosłownego cudzysłów:

comboService = """" & Me.Combo8.Value & """" 

cudzysłów wewnątrz łańcucha są czego szukasz.

aVar = "This: "" is a literal quotation mark" 
3

Wziąłem strony z SM (stary vbCrLf) jakiś czas temu, a tylko zdefiniować żadnych „trudnych” znaków Muszę postaci napisu w górnej części mojego kodu ...

Dim vbDblQuote As String vbDblQuote = Chr (34)

teraz można po prostu użyć tego pseudo-stałym, jak budować ciągi ...

strMyString = "Jeszcze jeden łańcuch" & vbDblQuote & "cytatami" & vbDblQuote & "!"

To sprawia, że ​​kod jest bardziej czytelny, a także pomaga uniknąć „miscounted błędy cytuję”

+0

Przyszedłem na tę stronę, szukając rozwiązania bardzo dziwnego zachowania. Korzystając z programu Excel 2013 w systemie Windows 7, mam funkcję, która umieszcza długi ciąg zawierający liczne osadzone cudzysłowy w komórce arkusza roboczego. Później chcę skopiować zawartość komórki z programu Excel i przekazać je do innego programu. Kiedy to zrobię, każdy podwójny cudzysłów zostanie podwojony w miejscu docelowym. Rozwiązaniem było makro, które umieszcza zawartość wybranej komórki w oknie komunikatu, z którego może być poprawnie skopiowana. –

0

Znalazłem takie samo zachowanie, jeśli wyjście do pliku przy użyciu polecenia Write. Wszelkie podwójne cudzysłowy się powtarzają.

Jednak jeśli skonstruujesz ciąg znaków, a następnie wypiszesz go do pliku przy użyciu polecenia Drukuj, tak się nie stanie i wszystko działa zgodnie z oczekiwaniami.

Powiązane problemy