dữ liệu tự động biến đổi

Liên hệ QC

phuongthu0109

Thành viên mới
Tham gia
3/6/15
Bài viết
22
Được thích
1
Mình có file txt:
Mã:
-1-1-1

nhưng khi mở file txt bằng excel:
thì nó hiển thị trên excel thành -3

Vậy mình xin hỏi có cách nào để tắt chế độ tự động tính của excel đi không

-----
update:
Mình ghi lại thao tác mở file như này có vẻ ổn. nhưng ko biết các thông số trong code này mang ý nghĩa gì, ai biết giải thích giúp mình đc ko

Mã:
    Workbooks.OpenText Filename:="C:\Users\2\Desktop\1.txt", Origin:=437, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 2), _
        TrailingMinusNumbers:=True

rút ngắn lại thì mình thấy code này cũng thu được kết quả hiển thị đúng nhưng ko biết array này là gì
Mã:
Workbooks.OpenText Filename:="C:\Users\Hoang\Desktop\1.txt", FieldInfo:=Array(1, 2)
//If Not ActiveWorkbook.ReadOnly = True Then 'check readonly
 
Lần chỉnh sửa cuối:
Mình có file txt:
Mã:
-1-1-1

nhưng khi mở file txt bằng excel:
thì nó hiển thị trên excel thành -3

Vậy mình xin hỏi có cách nào để tắt chế độ tự động tính của excel đi không

-----
update:
Mình ghi lại thao tác mở file như này có vẻ ổn. nhưng ko biết các thông số trong code này mang ý nghĩa gì, ai biết giải thích giúp mình đc ko

Mã:
    Workbooks.OpenText Filename:="C:\Users\2\Desktop\1.txt", Origin:=437, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 2), _
        TrailingMinusNumbers:=True

- Bạn có thể upload file txt lên để mọi người Test và giúp đỡ sẽ nhanh hơn đó.
 
Upvote 0
Mình có file txt:
Mã:
-1-1-1

nhưng khi mở file txt bằng excel:
thì nó hiển thị trên excel thành -3

Vậy mình xin hỏi có cách nào để tắt chế độ tự động tính của excel đi không

-----
update:
Mình ghi lại thao tác mở file như này có vẻ ổn. nhưng ko biết các thông số trong code này mang ý nghĩa gì, ai biết giải thích giúp mình đc ko

Mã:
    Workbooks.OpenText Filename:="C:\Users\2\Desktop\1.txt", Origin:=437, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 2), _
        TrailingMinusNumbers:=True

rút ngắn lại thì mình thấy code này cũng thu được kết quả hiển thị đúng nhưng ko biết array này là gì
Mã:
Workbooks.OpenText Filename:="C:\Users\Hoang\Desktop\1.txt", FieldInfo:=Array(1, 2)
Mình nghĩ vấn đề từ setup file excel ấy, bây giờ bạn thử mở 1 file mới rùi nhập -1-1-1 vào xem nó có tự chuyển thành -3 ko? nếu có thì do setup ở file excel.
 
Upvote 0
Không phải do thiết định trong excel đâu bạn.
mình đang đau đầu về số cột
Mã:
 Workbooks.OpenText Filename:="C:\Users\2\Desktop\1.txt", _
                       DataType:=xlDelimited, _
                       Comma:=False, _
                       FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2))

2 là hiển thị dạng text cho nên sẽ cấm excel tự tính toán linh tinh.
-1-1-1 sẽ không bị hiển thị là -3 nữa.
array(1,2) là cột 1 hiển thị dạng text
array(2,2) là cột 2 hiển thị dạng text
...
giả sử n là số cột trong file excel.
thì FieldInfo xây dựng tự động như thế nào.
nếu có vài cột thì gõ bằng tay như trên được, chứ n là số cột thì lúc ý viết như nào thì mình chưa nghĩ ra

//Comma là có phân cách cột bằng dấu , hay ko. như ở trên mình để là false thì tức là khi hiển thị trên excel thì phân cách trên các cột bằng tab. nếu trong file txt có abc [tab] xyz thì hiển thị trên excel là côt 1 : abc, cột 2: xyz.
 
Upvote 0
Tham khảo:
http://excelwork.info/excel/opentext/#fieldinfo
http://www.moug.net/tech/exvba/0060002.html
https://www.safaribooksonline.com/library/view/programming-excel-with/0596007663/re318.html

Mình vẫn chưa biết cách tạo
Mã:
FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2))
tự động được
----
update hihi, mình tìm được rồi:
link https://www.experts-exchange.com/qu...o-argument-work-for-TextToColumns-in-VBA.html
trường hợp
Mã:
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="|", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
        1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12 _
        , 1), Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), _
        Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array( _
        25, 1), Array(26, 1), Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), _
        Array(32, 1), Array(33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array( _
        38, 1), Array(39, 1), Array(40, 1), Array(41, 1), Array(42, 1), Array(43, 1), Array(44, 1), _
        Array(45, 1), Array(46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1), Array( _
        51, 1), Array(52, 1), Array(53, 1), Array(54, 1), Array(55, 1), Array(56, 1), Array(57, 1), _
        Array(58, 1), Array(59, 1), Array(60, 1), Array(61, 1), Array(62, 1), Array(63, 1), Array( _
        64, 1), Array(65, 1)), TrailingMinusNumbers:=True
thì tạo tự động như này
Mã:
Dim myArrB() As Variant
Dim iItem As Long
Dim myArrayTemp() As Variant
Dim myFields As Long

myFields = 2

myFields = myFields - 1 ' Zero Based

' Create a Jagged Array that is required by TextToColumns
' -------------------------------------------------------
ReDim myArrB(0 To myFields)

For iItem = 0 To myFields
    ReDim myArrayTemp(0 To 1)
    myArrayTemp(0) = iItem + 1
    myArrayTemp(1) = 1 ' xlGeneralFormat DataType
    myArrB(iItem) = myArrayTemp
Next iItem
' -------------------------------------------------------


Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="|", FieldInfo:=myArrB, TrailingMinusNumbers:=True
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom