Code lấy dữ liệu từ 1 sheet của file excel A đến file excel B (1 người xem)

  • Thread starter Thread starter nad582
  • Ngày gửi Ngày gửi
Liên hệ QC

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

nad582

Thành viên thường trực
Tham gia
7/6/11
Bài viết
317
Được thích
48
Các bác cho em hỏi: khi xuất nội lực từ Sap2000 ra rùi, từ bảng tính thép của e tạo 1 nút "CommandButton" tên "Mo File Noi Luc" sau đó copy nội lực vừa xuất ra ở sheet "Element Forces - Frames" dán vào bảng tính thép (copy sheet "Element Forces - Frames" từ ô "A4:H6500" sau đó dán vào sheet "MPS2000" tại ô A5)!!!!Mong các bác viết code VBA trong excel hộ e với, e suy nghĩ hoài không ra!!!!Xin cảm ơn.......
 
Các bác cho em hỏi: khi xuất nội lực từ Sap2000 ra rùi, từ bảng tính thép của e tạo 1 nút "CommandButton" tên "Mo File Noi Luc" sau đó copy nội lực vừa xuất ra ở sheet "Element Forces - Frames" dán vào bảng tính thép (copy sheet "Element Forces - Frames" từ ô "A4:H6500" sau đó dán vào sheet "MPS2000" tại ô A5)!!!!Mong các bác viết code VBA trong excel hộ e với, e suy nghĩ hoài không ra!!!!Xin cảm ơn.......
Làm biếng viết code mới nên "chế" lại code của bạn một chút như sau:
PHP:
Sub Copy_Data()
    Dim mybook As Workbook, basebook As String, fname As String, Mypath As String
   Application.ScreenUpdating = False
    Mypath = Application.ActiveWorkbook.Path
    basebook = ActiveWorkbook.Name
    ChDrive Mypath: ChDir Mypath
    fname = Application.GetOpenFilename(filefilter:="Execel files (*.xls), *.xls", Title:="Chon file nguon", MultiSelect:=False)
    If fname = "False" Then Exit Sub
    Set mybook = Workbooks.Open(fname)
    ThisWorkbook.Sheets("MPSap2000").[A4:H6500].Value = mybook.Sheets("Element Forces - Frames").[A4:H6500].Value
    mybook.Close False
    Application.ScreenUpdating = True
End Sub
 

File đính kèm

Upvote 0
thank bác Phúc nhìu nhé! Xin đa tạ

Bạn ơi xin giúp thêm lần nữa nhe!! cũng từ file "bang tinh thep" của e tạo 1 nút "CommandButton" tên "Mo File Noi Luc" sau đó lấy tiết diện "B x H" ở file "bang noi luc" tại sheet "Program Control" ở cột E dán vào file "bảng tính thép" tại sheet "MPS2000" (tại sheet "MPS2000" với ô J4 = "DAM 13"; ô L4 = 20; ô L4 = 30); ứng với tên dầm có tiết diện tương ứng.
e xin cám ơn bác lần nữa........
 
Lần chỉnh sửa cuối:
Upvote 0
thank bác Phúc nhìu nhé! Xin đa tạ

Bạn ơi xin giúp thêm lần nữa nhe!! cũng từ file "bang tinh thep" của e tạo 1 nút "CommandButton" tên "Mo File Noi Luc" sau đó lấy tiết diện "B x H" ở file "bang noi luc" tại sheet "Program Control" ở cột E dán vào file "bảng tính thép" tại sheet "MPS2000" (tại sheet "MPS2000" với ô J4 = "DAM 13"; ô L4 = 20; ô L4 = 30); ứng với tên dầm có tiết diện tương ứng.
e xin cám ơn bác lần nữa........

Cho mình hỏi cái số 4 trong cell K4 của sheet MPSap2000 là được tính như thế nào vậy bạn? Và phần tô đỏ ở trên.
 
Upvote 0
cell K4 của sheet MPSap2000 là được tính như vầy: =max((A$4$:A$65000$=J4)*B$4$:B$65000$)+Ctrl+Shift+Enter!!!!!!Xong
 
Upvote 0
Làm đại cho bạn = ADO, đúng sai bạn ráng chịu, ai biểu không giải thích phần tôi hỏi tô đỏ ở trên. Về phần công thức bạn tự điền nhé.
Mã:
Sub HLMT_ADO()

Dim Cn As New ADODB.Connection
Dim mySQL As String
mySQL = "UPDATE [Program Control$] a " _
                & "INNER JOIN " _
                & "[Excel 8.0;HDR=No;IMEX=2;DATABASE=" & ThisWorkbook.FullName & "].[data] b  " _
                & "ON a.F1=b.F1 " _
                & "SET b.F3=val(Mid(a.F5,2,2)) , b.F4=val(Right(a.F5,2))"
[L4:M6000].ClearContents
With Cn
    .Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                        "Data Source=" & ThisWorkbook.Path & _
                        "\bang noi luc.xls;Extended Properties=""Excel 8.0;HDR=No;"";"
    .Execute mySQL
    .Close
End With
Set Cn = Nothing

End Sub

Lưu ý: Nhớ giải nén ra rồi mở file nhé.
 

File đính kèm

Upvote 0
Đa tạ bạn; phần bạn tô đỏ ở trên là do mình gấp quá viết nhầm: "tại sheet "MPS2000" với ô J4 = "DAM 13"; ô L4 = 20; ô M4= 30".Xin lỗi!!!!!
Hỏi thêm bạn nhé: Vậy nếu file "bang noi luc" không có tên "bang noi luc" mà là 1 tên bất kỳ khác thì mình tách ra như thế nào hả bạn!!!

Nếu 2 file "bang noi luc" va "bang tinh thep" không nằm chung 1 thư mục thì sao!!!!
Xin chân thành cảm ơn nhìu!!!!!

Mình trả lời
số 4 trong cell K4 của sheet MPSap2000 là nè =max((A$4$:A$65000$=J4)*B$4$:B$65000$)+Ctrl+Shift+Enter
 
Lần chỉnh sửa cuối:
Upvote 0
Đa tạ bạn; phần bạn tô đỏ ở trên là do mình gấp quá viết nhầm: "tại sheet "MPS2000" với ô J4 = "DAM 13"; ô L4 = 20; ô M4= 30".Xin lỗi!!!!!
Hỏi thêm bạn nhé: Vậy nếu file "bang noi luc" không có tên "bang noi luc" mà là 1 tên bất kỳ khác thì mình tách ra như thế nào hả bạn!!!

Nếu 2 file "bang noi luc" va "bang tinh thep" không nằm chung 1 thư mục thì sao!!!!
Xin chân thành cảm ơn nhìu!!!!!

Mình trả lời
số 4 trong cell K4 của sheet MPSap2000 là nè =max((A$4$:A$65000$=J4)*B$4$:B$65000$)+Ctrl+Shift+Enter
Bạn sử dụng code sau nhé.

Mã:
Sub HLMT_ADO()

On Error GoTo loi
Dim Cn As New ADODB.Connection
Dim mySQL As String, strFile As Variant
strFile = Application.GetOpenFilename()
    If strFile <> False Then
            mySQL = "UPDATE [Program Control$] a " _
                            & "INNER JOIN " _
                            & "[Excel 8.0;HDR=No;IMEX=2;DATABASE=" & ThisWorkbook.FullName & "].[data] b  " _
                            & "ON a.F1=b.F1 " _
                            & "SET b.F3=val(Mid(a.F5,2,2)) , b.F4=val(Right(a.F5,2))"
            [L4:M6000].ClearContents
            With Cn
                .Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                                    "Data Source=" & strFile & _
                                    ";Extended Properties=""Excel 8.0;HDR=No;"";"
                .Execute mySQL
                .Close
            End With
    End If
Set Cn = Nothing
Exit Sub
loi:
MsgBox Err.Description

End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Xin các a giúp e viết đoạn code này với: Vấn dề là như vầy: e muốn copy từng ô của hàng 4 ở sheet "MPSap2000" sang từng ô của sheet "TinhThep" tưng ứng với từng ký hiệu của nó; đến hết "n" hàng ở sheet "MPSap2000" thì dừng lại; trong khi đó thì cột D tại ô D13 =3,5 trùng với khoảng cách a ở trên và cột E tại ô E13 là giá trị lón nhất ứng với tên dầm rùi tự động 2 cột D và E sẽ đi theo các hàng copy.Cuối cùng là sort tên dầm và vị trí để các cột còn lại ứng với tên dầm đã sort rùi hiệu chỉnh(cho nó có đường bao "viết luôn code hiệu chỉnh luôn ha") ……hix

E xin chân thành cảm ơn nhìu!!!!!! Các a vào sheet "xemthu" rùi viết code hộ e

Nếu như các a không hình dung đươc thì chỉ viế code sao cho giống sheet "xem thu" thui!!!!!
Cảm ơn nhiều!!!

!!!Lưu ý: là viết code VBA excel nhe không có công thức trong cell!! thank you very much!!!!/-*+/
-0-/.-0-/.-0-/.
xem file đính kèm rùi viết hộ em với!!!!
 
Upvote 0
Web KT

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

Back
Top Bottom