2011-11-25 44 views
39

Tôi có cột "thời lượng" trong trang tính Excel. Định dạng ô của nó luôn thay đổi — Tôi muốn chuyển đổi thời lượng từ vài phút thành giây, nhưng do định dạng ô, nó luôn mang lại cho tôi các câu trả lời khác nhau. Tôi đã suy nghĩ rằng trước khi thực hiện chuyển đổi, tôi có thể chuyển đổi định dạng ô đó thành văn bản để nó sẽ coi đó là giá trị văn bản và không cố tự động định dạng văn bản đó.Cách thay đổi Định dạng của Ô thành Văn bản bằng cách sử dụng VBA

Hiện tại tôi đang sao chép tất cả dữ liệu vào Notepad và sau đó lưu nó trở lại trang tính Excel để xóa tất cả định dạng trước đó. Có cách nào để tự động cài đặt định dạng của ô thành văn bản bằng VBA không?

+3

"Định dạng của ô luôn thay đổi" ?? Hãy cho chúng tôi xem một ví dụ. –

Trả lời

72

Để trả lời câu hỏi trực tiếp của bạn, đó là:

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

Hoặc

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

Tuy nhiên, tôi khuyên bạn nên làm thay đổi định dạng với những gì bạn thực sự muốn hiển thị. Điều này cho phép bạn giữ lại kiểu dữ liệu trong ô và dễ dàng sử dụng các công thức ô để thao tác dữ liệu.

7

Điều này sẽ thay đổi định dạng của bạn thành văn bản.

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

Không cần kích hoạt hoặc chọn trước khi bạn thay đổi NumberFormat - chỉ cần sử dụng một cái gì đó như Sheets (1) .Columns (1) .NumberFormat = "@" – aevanko

2

Một điểm: bạn phải đặt thuộc tính NumberFormat TRƯỚC KHI tải giá trị vào ô. Tôi đã có một số có chín chữ số vẫn được hiển thị dưới dạng 9,14E + 08 khi NumberFormat được đặt sau khi ô được tải. Thiết khách sạn trước khi tải các giá trị khiến số xuất hiện như tôi muốn, dưới dạng văn bản thẳng

OR:

Bạn có thể thử một AutoFit đầu tiên.
Excel_Obj.Columns ("A: V"). EntireColumn.AutoFit

Các vấn đề liên quan