2011-11-25 21 views
39

Mam kolumnę "duration" w arkuszu Excel. Format komórki zmienia się zawsze — Chcę przekonwertować czas trwania z minut na sekundy, ale z powodu formatowania komórki zawsze daje mi różne odpowiedzi.Jak zmienić format komórki na tekst za pomocą VBA

Myślałem, że przed wykonaniem konwersji mogę przekonwertować ten format komórki na tekst, tak aby traktował to jako wartość tekstową i nie próbował automatycznie formatować.

Obecnie kopiuję wszystkie dane do Notatnika, a następnie zapisuję je z powrotem w arkuszu Excel, aby usunąć cały poprzedni format. Czy istnieje sposób na zautomatyzowanie ustawiania formatowania komórki na tekst za pomocą języka VBA?

+3

"Czyj format komórki zawsze się zmienia" ?? Pokaż nam przykład. –

Odpowiedz

72

Aby odpowiedzieć na to pytanie bezpośrednio, to jest:

Range("A1").NumberFormat = "@" 

Albo

Cells(1,1).NumberFormat = "@" 

Jednak Proponuję dokonywania zmiany formatu, co rzeczywiście chcesz wyświetlany. Pozwala to na zachowanie typu danych w komórce i łatwe użycie formuł komórek do manipulowania danymi.

7

To powinno zmienić format na tekst.

Worksheets("Sheetname").Activate 
Worksheets("SheetName").Columns(1).Select 'or Worksheets("SheetName").Range("A:A").Select 
Selection.NumberFormat = "@" 
+16

Nie ma potrzeby aktywacji ani wyboru przed zmianą NumberFormat - wystarczy użyć czegoś takiego jak Arkusze (1). Kolumny (1). NumberFormat = "@" – aevanko

2

Jeden punkt: musisz ustawić właściwość NumberFormat PRZED załadowaniem wartości do komórki. Miałem dziewięciocyfrowy numer, który wciąż był wyświetlany jako 9.14E + 08, gdy NumberFormat został ustawiony po załadowaniu komórki. Ustawienie właściwości przed załadowaniem wartości sprawiły, że liczba wyglądają jak chciałem, jak prostym tekstem

czyli

można spróbować najpierw jest automatyczne dopasowanie.
Excel_Obj.Columns ("A: V") EntireColumn.AutoFit

Powiązane problemy