À em quên một điều kiện quan trọng nữa là nếu vùng chọn vừa có kiểu số, vừa có kiểu chữ, thì trước tiên ta phải format toàn bộ cells vùng đó là text rồi thực hiện thao tác paste như bên dưới thì mới có hiệu quả.
Nói đừng buồn nhé,Vậy thì đơn giản rồi anh à! anh gõ dấu nháy ['] này vào ô trống bất kỳ. Sau đó copy ô này (Ctrl+C). Chiếu sáng (Đánh khối) toàn bộ vùng muốn thêm dấu nháy đơn này vào và chọn Paste Special ---> Add (Alt+E, S, D). Anh test thử xem nhé!
Vẫn không thể nào Add cái dấu ' đó vào được. Excel chỉ chấp nhận Add một giá trị số thôi.À em quên một điều kiện quan trọng nữa là nếu vùng chọn vừa có kiểu số, vừa có kiểu chữ, thì trước tiên ta phải format toàn bộ cells vùng đó là text rồi thực hiện thao tác paste như bên dưới thì mới có hiệu quả.
Vậy là anh hai2hai muốn trong Cell thể hiện là '21334 có phải không?
Cái này mà em dám nói là làm được thì anh cũng thua chứ ở đó mà em bày cho anh Hai2hai làm!
Mong muốn: Trên cell thể hiện là 21334, nhưng F2 thì nó thể hiện '21334
Đã thử Format cả vùng (cần thêm nháy) trước là dạng text rồi. Khi paste vào, chỉ có dòng là text mới thêm nháy lúc bấm F2 (') thôi, dòng là số thì ko có kết quả như ý.
Nói đừng buồn nhé,
Cái này mà em dám nói là làm được thì anh cũng thua chứ ở đó mà em bày cho anh Hai2hai làm!
Anh xem file đính kèm. Em vừa làm xong đó.
Được mà anh BNTT...............
To anh hai2hai :Anh chuyển số sang text là được
Đã thử trên Excel207, nó không ép phê!Chịu thua thôi... Sao anh không tài nào mà Add thêm cái dấu ' vào.
Lấy cái bài của Ca_Dafi gửi, xóa bớt đi vài dấu ', rồi thử Paste Special vào như em nói, nó hổng chịu vào, là sao ?
Hay là tại vì Excel 2007 ?
Tất cả các dòng ở vùng tô đen lại ko có dòng nào chỉ có số (ví dụ: 12345) cả.
Trước khi paste, mình đã format cả vùng đó dạng text rồi mà!
12345asasa thì nó lại là dạng text, cái đó thì OK rồi mà. Vấn đề là trong đống đó lại có dòng 12345 thôi.
ca_dafi thử lại xem.
Thanks much!
P/S: Nhân tiện bài này, đây cũng là 1 vấn đề mình muốn nói thêm. Khi lập trình, bao giờ cũng phải vét cạn hết các trường hợp kiểu như vậy. Ví dụ, ở trường hợp trên, dữ liệu mình tính tới phải bao gồm tất cả các dạng dữ liệu (số, chữ,...) để khi chạy ở khách hàng sẽ hạn chế những trường hợp mà mình ko tính đến. Mọi khi chức năng Import mình chạy phe phé. Xong, mình tiếp tục thử bằng cách thử nhập liệu với nhiều dạng dữ liệu khác nhau chứ ko chỉ 1 dạng và lúc đó phần mềm lại ko import được những dòng đó. Nếu mình ko test kỹ như vậy, đến lúc làm cho KH thì sẽ ko import được, vừa mất thời gian, vừa mất uy tín với KH.
Các anh chị cho em hỏi trong excel khi e down 1 dữ liệu trong phần mềm ra thì ở đầu những con sồ xuất hiện dấu phẩy VD '0101018067 vậy làm sao để mầt dấu phầy này đi. E cám ơn các anh chị nhiều ạ
- Mình không thành thạo Excel (Nói thật đấy - Có Tuân làm kiểm chứng nhé )
- Nếu dùng hàm Text() thì e ko đúng ý mình lắm.
Bài toán cụ thể thế này:
Mình có 1 Sheet có tên là InventoryItem (cái này ko quan trọng, nói để hình dung thôi). Trong Sheet đó, mình có 2 cột (ví dụ thế): InventoryItemID (Cột 1), InventoryItemName (Cột 2)
Trong chương trình, cả 2 cột đều dạng Text cả (thực tế là Varchar)
Trên Sheet mình đã format 2 cột đó là Text rồi (chứ ko để là General đâu)
Ở Sheet đó mình gõ trực tiếp các dòng sau
12345678 Item 1
abc12345 Item 2
Thế mà khi Import vào chương trình, dòng thứ nhất thì OK ko sao, dòng thứ 2 nó ko nhận ra "abc12345" mà chỉ nhận giá trị NULL. (Mình nghĩ khi detect dòng thứ nhất nó hiểu là cột số, đến dòng thứ 2 nó tiếp tục hiểu là cột số nên nó mới trả lại giá trị NULL)
Mình kiểm tra mãi mới phát hiện ra nếu mình nhập như sau thì mọi việc OK
'12345678 Item 1
'abc12345 Item 2
Tức là, thêm dấu nháy (') vào trước các dữ liệu của cột InventoryItemID thì mọi việc đều tốt đẹp khi Import dữ liệu (khi thêm vào, nếu ko ở chế độ editing thì không nhìn thấy dấu nháy)
Tuy nhiên, dữ liệu của khách hàng có cực nhiều trên mỗi Sheet, và có rất nhiều Sheet có cột ID như vậy, nên ko thể gõ thêm dấu nháy (') cho từng dòng được.
Cho nên, mình muốn (làm bằng tay thôi, ko hàm hiệc, code kiệc gì cả, làm sao không thêm cột nào thì tốt vì file Excel đó là template (chuẩn) để Import rồi) mà có thể nhét dấu nháy (') vào tất cả các dòng của cả cột mà mình muốn làm.
Thanks in advance.
P/S:
Nếu dùng hàm text (=TEXT(B3,"'@")) thì nó lại hiện cả dấu nháy (') khi ko ở chế độ editing chứ ko phải như lúc mình gõ dấu ' lúc bấm F2
Hình như có 1 giải pháp khác là mình Format cột đó là Text.
Sau khi copy từ cột dữ liệu ở file của khách hàng, mình cột dữ liệu đó và paste special sang cột của mình values only (vẫn giữ nguyên format của mình). Hy vọng mọi chuyện sẽ giải quyết được.
Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=C:\MyFolder\MyWorkbook.xls;" & _
"Extended Properties=Excel 8.0; [B]MaxScanRows = [COLOR="Red"]2[/COLOR][/B]"
.Open
End With
Đã thử trên Excel207, nó không ép phê!
Excel2003 thì tốt
Giả sử cột A chứa dữ liệu:
1. Cột B gõ vào: ="'"&[A]
2. Kéo công thức xuống
3. Dán cứng cột B lại
4. Tìm và thay thế ký tự "'" bên cột B.
5. Copy cột B, paste all qua cột A
6. Delete cột B.
Nếu Haì2hai chịu xài ASAP (cũng là code kiết nhưng viết sẵn) thì có đấy:
Vào menu ASAP Utilities - Number - Convert Number to Text (Adding ' in front)
5 giây, kể cả mở Menu! ASAP là As Soon As Possible mà!
Có điều nó là cọt kẹt nên không có Undo.
Cũng liên quan đến chủ đề này, em có một khó khăn :
Việc định dạng của excel rất lung tung, chính vì vậy rất dễ nhầm lẫn khi xử lý mấy dữ liệu nửa số nửa text. (Số hiệu tài khoản chẳng hạn)
Vậy có cách nào để excel luôn hiểu nó (Số hiệu tài khoản) là Text ???
(Em đang dùng giải pháp là : thêm vào trước số hiệu tài khoản ký tự "_" híc híc)
Thân!
Trước tiên định dạng cả vùng tài khoản về dạng Text sau đó mới nhập thì Excel luôn là hiểu là Text.