Open & save as dữ liệu (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Cá ngừ F1

( ͡° ͜ʖ ͡°)
Thành viên BQT
Moderator
Tham gia
1/1/08
Bài viết
2,579
Được thích
3,723
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Quan hệ.. và quan hệ..
E có ghi lại một đoạn marco sau để mở file .dbf và save as dưới dạng file excel
Mã:
Sub Copy()
‘ Copy dữ liệu
' mở file ở 10.45.8.8\dlg$
    ChDir "\\10.45.8.8\dlg$"
    Workbooks.Open Filename:="\\10.45.8.8\dlg$\[COLOR=#ff0000][B]10314[/B][/COLOR].123.dbf"
' save thành file excel trong my documents
    ChDir "D:\My Documents"
    ActiveWorkbook.SaveAs Filename:=  "D:\My Documents\xxx.123.xlsb", FileFormat:=xlExcel12
End Sub
vậy e muốn hỏi một số ý sau:
- cái chỗ e bôi đỏ có định dạng ddmmyy.123.dbf Giờ e muốn làm tự động hơn. Ví dụ ở ô A1 đánh ngày 01/03/2014 thì tự động sẽ mở và save as file 10314.123
- đây mà marco ghi lại. Vậy có cách nào nhanh và mạnh hơn code này không ạh
e cảm ơn nhiều....
 
Lần chỉnh sửa cuối:
E có ghi lại một đoạn marco sau để mở file .dbf và save as dưới dạng file excel
vậy e muốn hỏi một số ý sau:
- cái chỗ e bôi đỏ có định dạng ddmmyy.123.dbf Giờ e muốn làm tự động hơn. Ví dụ ở ô A1 đánh ngày 01/03/2014 thì tự động sẽ mở và save as file 10314.123
- đây mà marco ghi lại. Vậy có cách nào nhanh và mạnh hơn code này không ạh
e cảm ơn nhiều....

Chỗ màu đỏ là 6 ký tự, vậy sao 10314.123.dbf chỉ có 5 ký tự vậy
Tôi hỏi thế là vì trường hợp 11114.123.dbf thì biết là ngày 1 tháng 11 hay ngày 11 tháng 1 đây?
Nói tóm lại: Bạn xem kỹ lại tên file dbf là bao nhiêu ký tự?
 
Upvote 0
Chỗ màu đỏ là 6 ký tự, vậy sao 10314.123.dbf chỉ có 5 ký tự vậy
Tôi hỏi thế là vì trường hợp 11114.123.dbf thì biết là ngày 1 tháng 11 hay ngày 11 tháng 1 đây?
Nói tóm lại: Bạn xem kỹ lại tên file dbf là bao nhiêu ký tự?
Nếu ngày tháng năm đầy đủ thì tên file là ddmmyy
còn nếu ngày < 10 thì nó chỉ lưu dưới dạng dmmyy ạh
 
Upvote 0
Nếu ngày tháng năm đầy đủ thì tên file là ddmmyy
còn nếu ngày < 10 thì nó chỉ lưu dưới dạng dmmyy ạh

Em tạo 1 hàm như ở dưới để tách thời gian hoặc tạo thủ tục trực tiếp để đọc từ ô A1.

Function DateMonthYear(Thoigian As Date)
DateMonthYear = Day(Thoigian) & Month(Thoigian) & Right(Year(Thoigian), 2)
End Function

Khi đó:

Filename:= "D:\My Documents\" & DateMonthYear & ".123.xlsb"
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Upvote 0
Dạ vâng. E chưa có test thử..e định đặt A1=today() luôn. Để chỉ bấm nút cái là OK luôn
Với Funtion

Mã:
Function DateMonthYear(Thoigian As Date)
DateMonthYear = Day(Thoigian) & Format(Month(Thoigian), "00") & Right(Year(Thoigian), 2)
End Function

Giả sử A1 bạn đánh ngày tháng năm ở đó khi đó code copy là

[GPECODE=vb]
Sub Copy()
' Copy du lieu
' mo file ? 10.45.8.8\dlg$
ChDir "\\10.45.8.8\dlg$"
Workbooks.Open Filename:="\\10.45.8.8\dlg$\" & DateMonthYear([A1]).Value & ".123.dbf"""
' save thành file excel trong my documents
ChDir "D:\My Documents"
ActiveWorkbook.SaveAs Filename:="D:\My Documents\xxx.123.xlsb", FileFormat:=xlExcel12
End Sub


[/GPECODE]
 
Upvote 0
Với Funtion

Mã:
Function DateMonthYear(Thoigian As Date)
DateMonthYear = Day(Thoigian) & Format(Month(Thoigian), "00") & Right(Year(Thoigian), 2)
End Function

Giả sử A1 bạn đánh ngày tháng năm ở đó khi đó code copy là

[GPECODE=vb]
Sub Copy()
' Copy du lieu
' mo file ? 10.45.8.8\dlg$
ChDir "\\10.45.8.8\dlg$"
Workbooks.Open Filename:="\\10.45.8.8\dlg$\" & DateMonthYear([A1]).Value & ".123.dbf"""
' save thành file excel trong my documents
ChDir "D:\My Documents"
ActiveWorkbook.SaveAs Filename:="D:\My Documents\xxx.123.xlsb", FileFormat:=xlExcel12
End Sub


[/GPECODE]
E test thử bị lỗi object required. Hjk
 

File đính kèm

  • image.jpg
    image.jpg
    12.2 KB · Đọc: 1
  • image.jpg
    image.jpg
    199.2 KB · Đọc: 2
Upvote 0
Sao lại lắm ngoặc kép ở cuối dòng code thế Tú? Lỗi là phải
 
Upvote 0
E cứ del đi. Xuống dòng nó lại tự hiện ra cái ngoặc kép đó
 
Upvote 0
E test thử bị lỗi object required. Hjk

Code của bạn:
Mã:
Sub Copy()
' Copy du lieu
' mo file ? 10.45.8.8\dlg$
    ChDir "\\10.45.8.8\dlg$"
    Workbooks.Open Filename:="\\10.45.8.8\dlg$\" & [COLOR=#ff0000]DateMonthYear([A1]).Value[/COLOR] & ".123.dbf"""
' save thành file excel trong my documents
    ChDir "D:\My Documents"
    ActiveWorkbook.SaveAs Filename:="D:\My Documents\xxx.123.xlsb", FileFormat:=xlExcel12
End Sub
Chỗ màu đỏ là sai! Vầy mới đúng DateMonthYear([A1].Value)
Mà nói chung cũng không cần đến hàm. Thay chỗ màu đỏ của bạn thành Format([A1].Value, "dMMyy") là được
 
Upvote 0
Mã:
' Copy va Save as du lieu tu 10.45.8.8\dlg$
Sub Copy_loan()
    Application.DisplayAlerts = False
    Workbooks.Open FileName:="\\10.45.8.8\dlg$\" & Format([A1].Value, "dMMyy") & _
   "loanmonth.123.dbf"
' Save as ve Import
    ActiveWorkbook.SaveAs FileName:="D:\SHARE\2. Du lieu goc\Import\" & _
    Format([AS2].Value, "dMMyy") & "loanmonth.123.xlsb", FileFormat:=xlExcel12
' Close lai
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
End Sub
Công việc copy từ dữ liệu gốc, kết hợp với thủ tục import dữ liệu vào sheet (của thầy NDU) thì việc tổng hợp đã nhanh và thuận tiện hơn rất nhiều rồi ạh..
e cảm ơn thầy PTH, thầy NDU và bạn nmhung49. Many tks...
 
Upvote 0
Mã:
' Copy va Save as du lieu tu 10.45.8.8\dlg$
Sub Copy_loan()
    Application.DisplayAlerts = False
    Workbooks.Open FileName:="\\10.45.8.8\dlg$\" & Format([A1].Value, "dMMyy") & _
   "loanmonth.123.dbf"
' Save as ve Import
    ActiveWorkbook.SaveAs FileName:="D:\SHARE\2. Du lieu goc\Import\" & _
    Format([AS2].Value, "dMMyy") & "loanmonth.123.xlsb", FileFormat:=xlExcel12
' Close lai
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
End Sub
Công việc copy từ dữ liệu gốc, kết hợp với thủ tục import dữ liệu vào sheet (của thầy NDU) thì việc tổng hợp đã nhanh và thuận tiện hơn rất nhiều rồi ạh..
e cảm ơn thầy PTH, thầy NDU và bạn nmhung49. Many tks...
Bổ đề thêm chút
E muốn xin code kiểm tra sự tồn tại của file "\\10.45.8.8\dlg$\" & Format([A1].Value, "dMMyy") & "loanmonth.123.dbf"
Nếu có thì tiếp tục save as
Nếu không thì đưa ra msgbox chưa có file này và bỏ qua thủ tục.
Mong các thành viên giúp đỡ
 
Upvote 0

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

Back
Top Bottom