quoc nhat
Thành viên tiêu biểu

- Tham gia
- 8/3/12
- Bài viết
- 567
- Được thích
- 43
- Nghề nghiệp
- cán bộ ngành y tế
em có đoạn code gọi open File name tham khảo trên diển đàn kết hợp với code của anh Batê để lấy dữ liệu trên File khác :
code như sau:
thầy cô và anh chị giúp em đoạn nếu không chọn file nào trong Open file thì sẽ kết thúc sub (không bị mất dữ liệu củ)
Cảm ơn anh chị và thầy cô
code như sau:
PHP:
Public Sub GPE()
On Error Resume Next
Dim basebook As String
Dim mybook As Workbook
Dim fname As String
Dim 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:="Tim file cua benh vien de cap nhat danh muc thuoc cho don vi ban", MultiSelect:=False)
Application.ScreenUpdating = False
Dim Wb As Workbook, sWbName As String, MyWb As String, DK As Long, I As Long, J As Long, K As Long, sArr(), dArr()
sWbName = [G1].Value: MyWb = ThisWorkbook.Name
For Each Wb In Workbooks
If Wb.Name = sWbName Then DK = DK + 1
Next Wb
Set mybook = Workbooks.Open(fname)
mybook.Workbooks.Activate
With Sheets("NGTRU")
sArr = .Range(.[A7], .[A65000].End(xlUp)).Resize(, 12).Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 7)
For I = 1 To UBound(sArr, 1)
If sArr(I, 11) > 0 Then
K = K + 1: dArr(K, 1) = K
For J = 2 To 4
dArr(K, J) = sArr(I, J)
Next J
dArr(K, 6) = sArr(I, 11): dArr(K, 7) = sArr(I, 12)
If sArr(I, 11) > 0 Then dArr(K, 5) = sArr(I, 12) / sArr(I, 11)
End If
Next I
End With
Workbooks(MyWb).Activate
With Sheets("DANH MUC")
.[A3:G10000].Borders.LineStyle = xlNone
.[A3:G10000].ClearContents
.[A3].Resize(K, 7).Value = dArr
.[A3].Resize(K, 7).Borders.LineStyle = xlContinuous
End With
Application.ScreenUpdating = True
'End If
End Sub
Cảm ơn anh chị và thầy cô
File đính kèm
Lần chỉnh sửa cuối: