Tạo tệp txt với vị trí các cột theo vị trí cho trước

Liên hệ QC

bin.vcsc

Thành viên hoạt động
Tham gia
6/12/13
Bài viết
125
Được thích
14
Gửi anh chị và các bạn.

Mong giúp đỡ mình cách ghép dữ liệu của các cột thành một chuỗi, và vi trí các cột sẽ quy định tại một vị trí cố định trong chuỗi.
Sau đó ghi dữ liệu này thành tệp txt.
Mong các bạn dành chút thời gian xem và hỗ trợ giúp mình.
Cám ơn rất nhiều.
 

File đính kèm

  • Hoi GPE_Tạo file txt.xlsm
    13.5 KB · Đọc: 18
  • Ket qua.txt
    1.2 KB · Đọc: 10
Dụng ý gì mà phức tạp vậy nhỉ?
 
Upvote 0
Xuất dữ liệu mà đầy tính chất thủ công nhỉ.
 
Upvote 0
Làm riêng 1 sheet xuất dữ liệu, rồi save với *csv cho đỡ khổ.
PHP:
Public Sub SaveWorksheetsAsCsv()
Dim xWs As Worksheet
Dim xDir As String
xDir = Application.ThisWorkbook.Path
Set xWs = Application.ThisWorkbook.Sheets("TXT")
    xWs.SaveAs xDir & "\" & xWs.Name, xlCSV
End Sub
 
Upvote 0
Làm riêng 1 sheet xuất dữ liệu, rồi save với *csv cho đỡ khổ.
PHP:
Public Sub SaveWorksheetsAsCsv()
Dim xWs As Worksheet
Dim xDir As String
xDir = Application.ThisWorkbook.Path
Set xWs = Application.ThisWorkbook.Sheets("TXT")
    xWs.SaveAs xDir & "\" & xWs.Name, xlCSV
End Sub
Cái chủ yếu người ta cần là công cụ để ghép dữ liệu lại thành chuỗi như mô tả. Bạn giúp người ta luôn thể đi!
 
Upvote 0
PHP:
Function createString(ByVal maNV As String, _
                      ByVal soVD As String, _
                      ByVal maTT As String, _
                      ByVal ngayGH As Long, _
                      ByVal gioGH As Double, _
                      ByVal ghiChu As String) As String
    Const lenStr = 412
    Dim str As String
    str = Space(lenStr)
    Mid(str, 1) = "SS"
    Mid(str, 3) = soVD
    Mid(str, 41) = maNV
    Mid(str, 62) = Format(ngayGH, "yyyymmdd")
    Mid(str, 387) = Format(ngayGH, "yyyymmdd")
    Mid(str, 70) = Format(gioGH, "hhMMss")
    Mid(str, 395) = Format(gioGH, "hhMMss")
    Mid(str, 76) = maTT
    Mid(str, 87) = ghiChu
    Mid(str, 409) = "VCSC"
    createString = str
End Function
 
Upvote 0
PHP:
Function createString(ByVal maNV As String, _
                      ByVal soVD As String, _
                      ByVal maTT As String, _
                      ByVal ngayGH As Long, _
                      ByVal gioGH As Double, _
                      ByVal ghiChu As String) As String
    Const lenStr = 412
    Dim str As String
    str = Space(lenStr)
    Mid(str, 1) = "SS"
    Mid(str, 3) = soVD
    Mid(str, 41) = maNV
    Mid(str, 62) = Format(ngayGH, "yyyymmdd")
    Mid(str, 387) = Format(ngayGH, "yyyymmdd")
    Mid(str, 70) = Format(gioGH, "hhMMss")
    Mid(str, 395) = Format(gioGH, "hhMMss")
    Mid(str, 76) = maTT
    Mid(str, 87) = ghiChu
    Mid(str, 409) = "VCSC"
    createString = str
End Function
Cám ơn bác @befaint nhưng làm cách nào để nhận diện được vị trí dữ liệu?
 
Upvote 0
Cái chủ yếu người ta cần là công cụ để ghép dữ liệu lại thành chuỗi như mô tả. Bạn giúp người ta luôn thể đi!
Nhanh quá nên ẩu :D
PHP:
=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPT(" ",1000),1,2,"SS"),3,LEN(C2),C2),41,LEN(B2),B2),62,LEN(TEXT(E2,"yyyymmdd")),TEXT(E2,"yyyymmdd")),70,LEN(TEXT(F2,"hhmmss")),TEXT(F2,"hhmmss")),76,LEN(D2),D2),87,LEN(G2),G2),387,LEN(TEXT(E2,"yyyymmdd")),TEXT(E2,"yyyymmdd")),395,LEN(TEXT(F2,"hhmmss")),TEXT(F2,"hhmmss")),409,LEN("VCSC"),"VCSC")
Làm cái công thức cho rối não :D
Tại ô bất kỳ sheet1 bạn paste đám phía trên vào.
Bài đã được tự động gộp:

Cám ơn bác @befaint nhưng làm cách nào để nhận diện được vị trí dữ liệu?
Bạn dùng
PHP:
LEFT( ô kết quả, vị trí muốn kiểm tra, số lượng ký tự)
để kiểm tra
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom