2013-06-11 40 views
6

trước hết, mới cho VBA.chức năng vba: trả về chuỗi với dòng mới

Tôi đang triển khai giải pháp này how-to-merge-all-column-into-one-cell-in-excel[stackoverflow], nhưng có theo dõi.

A1:I 
A2:am 
A3:a 
A4:boy 

đầu ra của tôi là: Iamaboy nhưng tôi muốn trong một tế bào:

I 
am 
a 
boy 

Chức năng dường như không trở về chuỗi với vbNewLine, chr(10) hoặc chr(13) ...

+4

bạn cần phải thiết lập 'quấn văn bản' tế bào của bạn bằng tay trong Excel, quá. –

+0

http://www.ozgrid.com/forum/showthread.php?t=16059 –

Trả lời

3

Một dòng mã:

Range("B1").Formula = join(application.transpose(Range("A1:A4")),vblf) 
0

Chỉ cần sử dụng Bộ tách CHAR (10):

=ConcatenateRange(A1:A4;CHAR(10)) 
+0

Tôi chắc chắn sẽ upvote điều này vì có vẻ như nó sẽ làm việc, nhưng nó không. –

+0

@DanielCook Bạn đã thử CHAR (13) chưa? Và bạn tính toán lại bảng tính (F9)? –

-1

Tôi bị mắc kẹt trong và nó đã làm việc một khi tôi sử dụng 'bọc văn bản'.

0

Sử dụng:

=A1&"[Alt+Enter]"&A2&"[Alt+Enter]"&A3&"[Alt+Enter]"&A4 
1

Câu trả lời là, như tlewin nói

=ConcatenateRange(A1:A4,CHAR(10)) 

Hoặc cách khác, sử dụng [alt-nhập] bạn có thể viết nó như thế này

=ConcatenateRange(A1:A4," 
") 

" Nhưng chờ đợi, "bạn nói," Tôi đã thử điều đó và nó không hoạt động! "
Vâng, bạn thấy, khi bạn nhập thủ công một cái gì đó như I[alt-enter]am[alt-enter]a[alt-enter]boy trong Excel, hoặc thậm chí thực hiện một tuyên bố như [A1] = "I" & vbNewLine & "am" Excel sẽ tự động thay đổi định dạng ô và bật từ bọc. Gói từ là được yêu cầu để hiển thị dấu ngắt dòng trong ô. Tuy nhiên nếu bạn trả về một chuỗi với một dấu ngắt dòng trong nó từ một UDF Excel không cập nhật định dạng.

tôi có thể nghĩ đến hai giải pháp khả thi:

  1. thủ cho phép ngắt từ trên bất kỳ tế bào bạn sử dụng chức năng này trong
  2. (Không khuyến khích) Lưu trữ các tài liệu tham khảo trong Application.Caller trong suốt cuộc gọi ConcatenateRange UDF của bạn, sau đó đặt một cuộc gọi Application.OnTime(now, "AddWordWrap") và viết chương trình con AddWordWrap để nó sử dụng tham chiếu được lưu trữ để thêm định dạng wordwrap vào ô (điều này là do bạn không thể cập nhật định dạng của ô trong UDF). Phương pháp này là lỗi và có vấn đề.
0

thử sử dụng này

Sheet1.Range("A1").Value = "sgar" & Chr(10) & "saha" 
0
Cells(row, column) = "current line" & Chr(10) & "new line" 
Các vấn đề liên quan