Nhờ check hàm VBA

Liên hệ QC
Status
Không mở trả lời sau này.

881516

Thành viên chính thức
Tham gia
8/6/16
Bài viết
80
Được thích
6
Nội dung của hàm này như sau ạ:
Lấy dữ liệu từ các ô (E4, I6, P6, G8, H23, D31, K36, P36, K37, P37, U35, J41, J45, P45, J45, AB70, H68, H69)
trong các file 1,2,3 .... (công thức chỉ dài ở đoạn này)
Sắp xếp vào các ô ở 1 file mới

A2, B2, C2, D2, E2 ...
A3, B3, C3, D3, E3 ...
....

Em có nhờ 1 người làm hộ công thức này, nhưng ko hiểu sao các ô K37, P37, và H68 H69 ko lấy đc dữ liệu để nhập vào. Nếu xóa P36, K36 đi thì K37, P37 lại nhập đc
Vậy nhờ anh chị kiểm tra giúp em ạ


Sub test()
Dim FolderPath As String, FileName As String, strFileTarget As String
Dim wb As Excel.Workbook
Dim i As Integer, lastRow As Integer
Dim rngCopy As Range

FolderPath = Range("A1").Value & "\" 'Duong dan thu muc do tim
FileName = Dir(FolderPath & "*.xls*") 'Tim trong thu muc tat ca cac file *.xls*
strFileTarget = "IMEX - Hung.xlsm" 'Ten file macro chay

Set FSO = CreateObject("Scripting.FileSystemObject")
Application.ScreenUpdating = False
If FSO.FolderExists(FolderPath) Then

Do While FileName <> ""
If FileName <> strFileTarget Then

On Error Resume Next
Set wb = Workbooks.Open(FolderPath & FileName)
If Err.Number <> 0 Then: MsgBox ("Unable to open file " & FileName)
On Error GoTo 0
lastRow = Workbooks(strFileTarget).Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Row


Set E4 = Workbooks(FileName).Worksheets(1).Range("E4"): Set I6 = Workbooks(FileName).Worksheets(1).Range("I6")
Set P6 = Workbooks(FileName).Worksheets(1).Range("P6"): Set G8 = Workbooks(FileName).Worksheets(1).Range("G8")
Set H23 = Workbooks(FileName).Worksheets(1).Range("H23"): Set D31 = Workbooks(FileName).Worksheets(1).Range("D31")
Set K36 = Workbooks(FileName).Worksheets(1).Range("K36"): Set P36 = Workbooks(FileName).Worksheets(1).Range("P36")
Set K37 = Workbooks(FileName).Worksheets(1).Range("K37"): Set P37 = Workbooks(FileName).Worksheets(1).Range("P37")
Set U35 = Workbooks(FileName).Worksheets(1).Range("U35"): Set J41 = Workbooks(FileName).Worksheets(1).Range("J41")
Set J45 = Workbooks(FileName).Worksheets(1).Range("J45"): Set P45 = Workbooks(FileName).Worksheets(1).Range("P45")
Set J45 = Workbooks(FileName).Worksheets(1).Range("J45"): Set AB70 = Workbooks(FileName).Worksheets(1).Range("AB70")
Set H68 = Workbooks(FileName).Worksheets(1).Range("H68"): Set H69 = Workbooks(FileName).Worksheets(1).Range("H69")
Set rngCopy = Union(E4, I6, P6, G8, H23, D31, K36, P36, K37, P37, U35, J41, J45, P45, J45, AB70, H68, H69)

For i = 1 To rngCopy.Areas.Count: Workbooks(strFileTarget).Worksheets(1).Cells(lastRow + 1, i).Value = rngCopy.Areas(i).Value: Next

Application.Wait (Now + TimeValue("0:00:01"))
Workbooks(FileName).Close


End If

FileName = Dir
Loop

Else
MsgBox folder & "Specified Folder Not Found", vbInformation, "Not Found!"
End If
MsgBox ("Well Done!")
Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
e edit lại chính xác ạ
 
ai giúp e với :(
 
Để đơn giản tôi hỏi
1. Số liệu nằm trong các file 1,2,3 .... và đều có cùng vị trí là các ô (E4, I6, P6, G8, H23, D31, K36, P36, K37, P37, U35, J41, J45, P45, J45, AB70, H68, H69)? (đúng hay sai, sai thì chỉ rõ ra)
Thêm nữa: Các file có cùng trên 1 thư mục không.

2. Sắp xếp vào các ô ở 1 file mới
A1, B1, C1, D1, E1 ...
A2, B2, C2, D2, E2 ...

thì toàn bộ các ô (E4, I6, P6, G8, H23, D31, K36, P36, K37, P37, U35, J41, J45, P45, J45, AB70, H68, H69) sẽ được xếp lần lượt thành 1 hàng thì hàng 1 là của file 1, hàng 2 là của file 2... đúng hay sai.

3. Bạn viết "Em có nhờ 1 người làm hộ công thức này..."
Đây kg phải là công thức và hàm là một chương trình con
 
Để đơn giản tôi hỏi
1. Số liệu nằm trong các file 1,2,3 .... và đều có cùng vị trí là các ô (E4, I6, P6, G8, H23, D31, K36, P36, K37, P37, U35, J41, J45, P45, J45, AB70, H68, H69)? (đúng hay sai, sai thì chỉ rõ ra)
Hi bạn. Mình mong đc sự giúp đỡ
1. Các file cần lấy dữ liệu nằm trong 1 thư mục (có đường dẫn tại ô A1 của file tổng hợp), chương trình này chạy và lấy dữ liệu bình thường (ngoại trừ lỗi đang đề cập)
2. Sai !
Tất cả các ô cần lấy dữ liệu, ở các file dữ liệu, sẽ được gom về 1 file tổng hợp, sắp xếp lại theo hàng bắt đầu từ hàng 2 (trên bài mình để là hàng 1, đã edit lại)
A2,B2,C2,D2,E2
A3,B3,C3,D3,E3
...
 
Nội dung của hàm này như sau ạ:
Lấy dữ liệu từ các ô (E4, I6, P6, G8, H23, D31, K36, P36, K37, P37, U35, J41, J45, P45, J45, AB70, H68, H69)
trong các file 1,2,3 .... (công thức chỉ dài ở đoạn này)
Sắp xếp vào các ô ở 1 file mới

A2, B2, C2, D2, E2 ...
A3, B3, C3, D3, E3 ...
....

Em có nhờ 1 người làm hộ công thức này, nhưng ko hiểu sao các ô K37, P37, và H68 H69 ko lấy đc dữ liệu để nhập vào. Nếu xóa P36, K36 đi thì K37, P37 lại nhập đc
Vậy nhờ anh chị kiểm tra giúp em ạ

Bạn cho mình xin cái screenshot vị trí ô K36 và K37 hoặc cái file dữ liệu của bạn.
 
File, phải có file mới test code của bạn được.
Đúng vậy. Phải có file mới test code của bạn được. Không cần gửi 3 file 1, 2, 3 . Chỉ cần gửi file có code trên.
Cũng chú ý là lấy nội dung của các file 1, 2, 3 và ghi vô file chứa code
 
Gửi các bạn
File lấy dữ liệu là file ToKhai đặt trong thư mục X, đường dẫn là Y
File tổng hợp là file IMEX, dữ liệu tổng hợp vào sheet 1, link Y đặt vào ô A1 nhé
Nhờ mọi người check giúp nha
 

File đính kèm

  • ToKhaiHQ7N_101478316000.xls
    88.5 KB · Đọc: 7
  • ToKhaiHQ7N_101478351440.xls
    88.5 KB · Đọc: 7
  • IMEX - Hung - Copy.xlsm
    41.7 KB · Đọc: 7
Mình Test có vấn đề gì đâu nhỉ?
data-import.jpg
 

File đính kèm

  • data-k36.jpg
    data-k36.jpg
    178 KB · Đọc: 4
Bạn thử lại với đoạn code sau nhé!

Mã:
Sub test()
Dim FolderPath As String, FileName As String, strFileTarget As String
Dim wb As Excel.Workbook
Dim i As Integer, lastRow As Integer
Dim DataArr(17) As Variant

FolderPath = Range("A1").Value & "\"        'Duong dan thu muc do tim
FileName = Dir(FolderPath & "*.xls*")       'Tim trong thu muc tat ca cac file *.xls*
strFileTarget = "IMEX - Hung - Copy.xlsm"          'Ten file macro chay

Set FSO = CreateObject("Scripting.FileSystemObject")
Application.ScreenUpdating = False
If FSO.FolderExists(FolderPath) Then
   
    Do While FileName <> ""
        If FileName <> strFileTarget Then
       
            On Error Resume Next
            Set wb = Workbooks.Open(FolderPath & FileName)
            If Err.Number <> 0 Then: MsgBox ("Unable to open file " & FileName)
            On Error GoTo 0
            lastRow = Workbooks(strFileTarget).Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Row
           
    '        Workbooks(FileName).Worksheets(1).Range(Cells(5, 2), Cells(10, 2)).Copy
    '        Workbooks(strFileTarget).Worksheets(1).Cells(lastRow + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

            DataArr(0) = Workbooks(FileName).Worksheets(1).Range("E4").Value: DataArr(1) = Workbooks(FileName).Worksheets(1).Range("I6").Value
            DataArr(2) = Workbooks(FileName).Worksheets(1).Range("P6").Value: DataArr(3) = Workbooks(FileName).Worksheets(1).Range("G8").Value
            DataArr(4) = Workbooks(FileName).Worksheets(1).Range("H23").Value: DataArr(5) = Workbooks(FileName).Worksheets(1).Range("D31").Value
            DataArr(6) = Workbooks(FileName).Worksheets(1).Range("K36").Value: DataArr(7) = Workbooks(FileName).Worksheets(1).Range("P36").Value
            DataArr(8) = Workbooks(FileName).Worksheets(1).Range("K37").Value: DataArr(9) = Workbooks(FileName).Worksheets(1).Range("P37").Value
            DataArr(10) = Workbooks(FileName).Worksheets(1).Range("U35").Value: DataArr(11) = Workbooks(FileName).Worksheets(1).Range("J41").Value
            DataArr(12) = Workbooks(FileName).Worksheets(1).Range("J45").Value: DataArr(13) = Workbooks(FileName).Worksheets(1).Range("P45").Value
            DataArr(14) = Workbooks(FileName).Worksheets(1).Range("J45").Value: DataArr(15) = Workbooks(FileName).Worksheets(1).Range("AB70").Value
            DataArr(16) = Workbooks(FileName).Worksheets(1).Range("H68").Value: DataArr(17) = Workbooks(FileName).Worksheets(1).Range("H69").Value
           
            For i = 0 To UBound(DataArr)
                    Workbooks(strFileTarget).Worksheets(1).Cells(lastRow + 1, i + 1).Value = Trim(DataArr(i))
            Next

            Application.Wait (Now + TimeValue("0:00:01"))
            Workbooks(FileName).Close SaveChanges:=False

           
        End If
       
        FileName = Dir
    Loop

Else
    MsgBox folder & "Specified Folder Not Found", vbInformation, "Not Found!"
End If
MsgBox ("Well Done!")
Application.ScreenUpdating = True
End Sub
 
Bạn thử lại với đoạn code sau nhé!

Mã:
Sub test()
Dim FolderPath As String, FileName As String, strFileTarget As String
Dim wb As Excel.Workbook
Dim i As Integer, lastRow As Integer
Dim DataArr(17) As Variant

FolderPath = Range("A1").Value & "\"        'Duong dan thu muc do tim
FileName = Dir(FolderPath & "*.xls*")       'Tim trong thu muc tat ca cac file *.xls*
strFileTarget = "IMEX - Hung - Copy.xlsm"          'Ten file macro chay

Set FSO = CreateObject("Scripting.FileSystemObject")
Application.ScreenUpdating = False
If FSO.FolderExists(FolderPath) Then
  
    Do While FileName <> ""
        If FileName <> strFileTarget Then
      
            On Error Resume Next
            Set wb = Workbooks.Open(FolderPath & FileName)
            If Err.Number <> 0 Then: MsgBox ("Unable to open file " & FileName)
            On Error GoTo 0
            lastRow = Workbooks(strFileTarget).Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Row
          
    '        Workbooks(FileName).Worksheets(1).Range(Cells(5, 2), Cells(10, 2)).Copy
    '        Workbooks(strFileTarget).Worksheets(1).Cells(lastRow + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

            DataArr(0) = Workbooks(FileName).Worksheets(1).Range("E4").Value: DataArr(1) = Workbooks(FileName).Worksheets(1).Range("I6").Value
            DataArr(2) = Workbooks(FileName).Worksheets(1).Range("P6").Value: DataArr(3) = Workbooks(FileName).Worksheets(1).Range("G8").Value
            DataArr(4) = Workbooks(FileName).Worksheets(1).Range("H23").Value: DataArr(5) = Workbooks(FileName).Worksheets(1).Range("D31").Value
            DataArr(6) = Workbooks(FileName).Worksheets(1).Range("K36").Value: DataArr(7) = Workbooks(FileName).Worksheets(1).Range("P36").Value
            DataArr(8) = Workbooks(FileName).Worksheets(1).Range("K37").Value: DataArr(9) = Workbooks(FileName).Worksheets(1).Range("P37").Value
            DataArr(10) = Workbooks(FileName).Worksheets(1).Range("U35").Value: DataArr(11) = Workbooks(FileName).Worksheets(1).Range("J41").Value
            DataArr(12) = Workbooks(FileName).Worksheets(1).Range("J45").Value: DataArr(13) = Workbooks(FileName).Worksheets(1).Range("P45").Value
            DataArr(14) = Workbooks(FileName).Worksheets(1).Range("J45").Value: DataArr(15) = Workbooks(FileName).Worksheets(1).Range("AB70").Value
            DataArr(16) = Workbooks(FileName).Worksheets(1).Range("H68").Value: DataArr(17) = Workbooks(FileName).Worksheets(1).Range("H69").Value
          
            For i = 0 To UBound(DataArr)
                    Workbooks(strFileTarget).Worksheets(1).Cells(lastRow + 1, i + 1).Value = Trim(DataArr(i))
            Next

            Application.Wait (Now + TimeValue("0:00:01"))
            Workbooks(FileName).Close SaveChanges:=False

          
        End If
      
        FileName = Dir
    Loop

Else
    MsgBox folder & "Specified Folder Not Found", vbInformation, "Not Found!"
End If
MsgBox ("Well Done!")
Application.ScreenUpdating = True
End Sub


Hi bạn, xin lỗi mình đào mộ chút nhé.
Hiện mình gặp rắc rối với file này về vấn đề định dạng

Ví dụ ô AB70 là tỉ giá, trên file gốc là 22.690 nhưng sau khi chạy sang file tổng hợp nó lại hiện là 22.69

ô G8 là ngày tháng, nếu dữ liệu ở ô gốc là 10/04/2018 thì ko hiểu sao sau khi chạy macro nó lại hiện thành 04-10-2018 ở file tổng hợp và máy nó convert thành 04 Otc 18
(tổng quát là nếu ngày ở file gốc <12 thì nó bị đảo ngày và tháng cho nhau)

Mình có tìm hiểu là do lỗi định dạng vùng ở máy mình, mình khắc phục đc nhưng lại lỗi phần khác. Vậy để đơn giản, bạn có thể giúp mình chỉnh lại sao cho ô dữ liệu nguồn như nào thì sang file tổng hợp vẫn y nguyên như vậy đc ko, phần xử lý số liệu mình sẽ tự làm

Cảm ơn bạn
 
Hi bạn, xin lỗi mình đào mộ chút nhé.
Hiện mình gặp rắc rối với file này về vấn đề định dạng

Ví dụ ô AB70 là tỉ giá, trên file gốc là 22.690 nhưng sau khi chạy sang file tổng hợp nó lại hiện là 22.69

ô G8 là ngày tháng, nếu dữ liệu ở ô gốc là 10/04/2018 thì ko hiểu sao sau khi chạy macro nó lại hiện thành 04-10-2018 ở file tổng hợp và máy nó convert thành 04 Otc 18
(tổng quát là nếu ngày ở file gốc <12 thì nó bị đảo ngày và tháng cho nhau)

Mình có tìm hiểu là do lỗi định dạng vùng ở máy mình, mình khắc phục đc nhưng lại lỗi phần khác. Vậy để đơn giản, bạn có thể giúp mình chỉnh lại sao cho ô dữ liệu nguồn như nào thì sang file tổng hợp vẫn y nguyên như vậy đc ko, phần xử lý số liệu mình sẽ tự làm

Cảm ơn bạn
Do dữ liệu nguồn của bạn định dạng text hết nên nếu muốn sang file tổng hợp giống y nguyên thì bạn có thể sửa như vầy:


Mã:
Sub test()
Dim FolderPath As String, FileName As String, strFileTarget As String
Dim wb As Excel.Workbook
Dim i As Integer, lastRow As Integer
Dim DataArr(17) As String

FolderPath = Range("A1").Value & "\"        'Duong dan thu muc do tim
FileName = Dir(FolderPath & "*.xls*")       'Tim trong thu muc tat ca cac file *.xls*
strFileTarget = "IMEX - Hung - Copy.xlsm"          'Ten file macro chay

Set FSO = CreateObject("Scripting.FileSystemObject")
Application.ScreenUpdating = False
If FSO.FolderExists(FolderPath) Then
  
    Do While FileName <> ""
        If FileName <> strFileTarget Then
      
            On Error Resume Next
            Set wb = Workbooks.Open(FolderPath & FileName)
            If Err.Number <> 0 Then: MsgBox ("Unable to open file " & FileName)
            On Error GoTo 0
            lastRow = Workbooks(strFileTarget).Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Row
          
    '        Workbooks(FileName).Worksheets(1).Range(Cells(5, 2), Cells(10, 2)).Copy
    '        Workbooks(strFileTarget).Worksheets(1).Cells(lastRow + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

            DataArr(0) = Workbooks(FileName).Worksheets(1).Range("E4").Value: DataArr(1) = Workbooks(FileName).Worksheets(1).Range("I6").Value
            DataArr(2) = Workbooks(FileName).Worksheets(1).Range("P6").Value: DataArr(3) = Workbooks(FileName).Worksheets(1).Range("G8").Value
            DataArr(4) = Workbooks(FileName).Worksheets(1).Range("H23").Value: DataArr(5) = Workbooks(FileName).Worksheets(1).Range("D31").Value
            DataArr(6) = Workbooks(FileName).Worksheets(1).Range("K36").Value: DataArr(7) = Workbooks(FileName).Worksheets(1).Range("P36").Value
            DataArr(8) = Workbooks(FileName).Worksheets(1).Range("K37").Value: DataArr(9) = Workbooks(FileName).Worksheets(1).Range("P37").Value
            DataArr(10) = Workbooks(FileName).Worksheets(1).Range("U35").Value: DataArr(11) = Workbooks(FileName).Worksheets(1).Range("J41").Value
            DataArr(12) = Workbooks(FileName).Worksheets(1).Range("J45").Value: DataArr(13) = Workbooks(FileName).Worksheets(1).Range("P45").Value
            DataArr(14) = Workbooks(FileName).Worksheets(1).Range("J45").Value: DataArr(15) = Workbooks(FileName).Worksheets(1).Range("AB70").Value
            DataArr(16) = Workbooks(FileName).Worksheets(1).Range("H68").Value: DataArr(17) = Workbooks(FileName).Worksheets(1).Range("H69").Value
          
            For i = 0 To UBound(DataArr)
                    Workbooks(strFileTarget).Worksheets(1).Cells(lastRow + 1, i + 1).Value = "'" & Trim(DataArr(i))
            Next

            Application.Wait (Now + TimeValue("0:00:01"))
            Workbooks(FileName).Close SaveChanges:=False

          
        End If
      
        FileName = Dir
    Loop

Else
    MsgBox folder & "Specified Folder Not Found", vbInformation, "Not Found!"
End If
MsgBox ("Well Done!")
Application.ScreenUpdating = True
End Sub

như vậy thì dữ liệu File tổng hợp sẽ giống với nguồn, đều là text hết
 
Do dữ liệu nguồn của bạn định dạng text hết nên nếu muốn sang file tổng hợp giống y nguyên thì bạn có thể sửa như vầy:
như vậy thì dữ liệu File tổng hợp sẽ giống với nguồn, đều là text hết
Cảm ơn bạn, rất nhiều :((

Nhân tiện mình muốn hỏi thêm
Mình có chọn thêm 1 ô để lấy dữ liệu và edit phần macro như dưới (cụ thể là số 15, cột X171 mình cần lấy thêm)
Khi chạy công thức thì báo lỗi ở ô 18 bôi vàng (mình để chữ màu hồng)

DataArr(0) = Workbooks(FileName).Worksheets(1).Range("E4").Value: DataArr(1) = Workbooks(FileName).Worksheets(1).Range("I6").Value
DataArr(2) = Workbooks(FileName).Worksheets(1).Range("P6").Value: DataArr(3) = Workbooks(FileName).Worksheets(1).Range("G8").Value
DataArr(4) = Workbooks(FileName).Worksheets(1).Range("H23").Value: DataArr(5) = Workbooks(FileName).Worksheets(1).Range("D31").Value
DataArr(6) = Workbooks(FileName).Worksheets(1).Range("K36").Value: DataArr(7) = Workbooks(FileName).Worksheets(1).Range("P36").Value
DataArr(8) = Workbooks(FileName).Worksheets(1).Range("K37").Value: DataArr(9) = Workbooks(FileName).Worksheets(1).Range("P37").Value
DataArr(10) = Workbooks(FileName).Worksheets(1).Range("U35").Value: DataArr(11) = Workbooks(FileName).Worksheets(1).Range("J41").Value
DataArr(12) = Workbooks(FileName).Worksheets(1).Range("J45").Value: DataArr(13) = Workbooks(FileName).Worksheets(1).Range("P45").Value
DataArr(14) = Workbooks(FileName).Worksheets(1).Range("D64").Value: DataArr(15) = Workbooks(FileName).Worksheets(1).Range("X171").Value
DataArr(16) = Workbooks(FileName).Worksheets(1).Range("AB70").Value: DataArr(17) = Workbooks(FileName).Worksheets(1).Range("H68").Value
DataArr(18) = Workbooks(FileName).Worksheets(1).Range("H69").Value
 
Cảm ơn bạn, rất nhiều :((

Nhân tiện mình muốn hỏi thêm
Mình có chọn thêm 1 ô để lấy dữ liệu và edit phần macro như dưới (cụ thể là số 15, cột X171 mình cần lấy thêm)
Khi chạy công thức thì báo lỗi ở ô 18 bôi vàng (mình để chữ màu hồng)

DataArr(0) = Workbooks(FileName).Worksheets(1).Range("E4").Value: DataArr(1) = Workbooks(FileName).Worksheets(1).Range("I6").Value
DataArr(2) = Workbooks(FileName).Worksheets(1).Range("P6").Value: DataArr(3) = Workbooks(FileName).Worksheets(1).Range("G8").Value
DataArr(4) = Workbooks(FileName).Worksheets(1).Range("H23").Value: DataArr(5) = Workbooks(FileName).Worksheets(1).Range("D31").Value
DataArr(6) = Workbooks(FileName).Worksheets(1).Range("K36").Value: DataArr(7) = Workbooks(FileName).Worksheets(1).Range("P36").Value
DataArr(8) = Workbooks(FileName).Worksheets(1).Range("K37").Value: DataArr(9) = Workbooks(FileName).Worksheets(1).Range("P37").Value
DataArr(10) = Workbooks(FileName).Worksheets(1).Range("U35").Value: DataArr(11) = Workbooks(FileName).Worksheets(1).Range("J41").Value
DataArr(12) = Workbooks(FileName).Worksheets(1).Range("J45").Value: DataArr(13) = Workbooks(FileName).Worksheets(1).Range("P45").Value
DataArr(14) = Workbooks(FileName).Worksheets(1).Range("D64").Value: DataArr(15) = Workbooks(FileName).Worksheets(1).Range("X171").Value
DataArr(16) = Workbooks(FileName).Worksheets(1).Range("AB70").Value: DataArr(17) = Workbooks(FileName).Worksheets(1).Range("H68").Value
DataArr(18) = Workbooks(FileName).Worksheets(1).Range("H69").Value
Do lệnh:
Dim DataArr(17) As String
 
Cảm ơn bạn, rất nhiều :((

Nhân tiện mình muốn hỏi thêm
Mình có chọn thêm 1 ô để lấy dữ liệu và edit phần macro như dưới (cụ thể là số 15, cột X171 mình cần lấy thêm)
Khi chạy công thức thì báo lỗi ở ô 18 bôi vàng (mình để chữ màu hồng)

DataArr(0) = Workbooks(FileName).Worksheets(1).Range("E4").Value: DataArr(1) = Workbooks(FileName).Worksheets(1).Range("I6").Value
DataArr(2) = Workbooks(FileName).Worksheets(1).Range("P6").Value: DataArr(3) = Workbooks(FileName).Worksheets(1).Range("G8").Value
DataArr(4) = Workbooks(FileName).Worksheets(1).Range("H23").Value: DataArr(5) = Workbooks(FileName).Worksheets(1).Range("D31").Value
DataArr(6) = Workbooks(FileName).Worksheets(1).Range("K36").Value: DataArr(7) = Workbooks(FileName).Worksheets(1).Range("P36").Value
DataArr(8) = Workbooks(FileName).Worksheets(1).Range("K37").Value: DataArr(9) = Workbooks(FileName).Worksheets(1).Range("P37").Value
DataArr(10) = Workbooks(FileName).Worksheets(1).Range("U35").Value: DataArr(11) = Workbooks(FileName).Worksheets(1).Range("J41").Value
DataArr(12) = Workbooks(FileName).Worksheets(1).Range("J45").Value: DataArr(13) = Workbooks(FileName).Worksheets(1).Range("P45").Value
DataArr(14) = Workbooks(FileName).Worksheets(1).Range("D64").Value: DataArr(15) = Workbooks(FileName).Worksheets(1).Range("X171").Value
DataArr(16) = Workbooks(FileName).Worksheets(1).Range("AB70").Value: DataArr(17) = Workbooks(FileName).Worksheets(1).Range("H68").Value
DataArr(18) = Workbooks(FileName).Worksheets(1).Range("H69").Value
bạn sửa chỗ này Dim DataArr(17) As String thành Dim DataArr(18) As String vì mảng khai báo chỉ đến 17 mà bạn them vào cái DataArr(18) nên lỗi
 
bạn sửa chỗ này Dim DataArr(17) As String thành Dim DataArr(18) As String vì mảng khai báo chỉ đến 17 mà bạn them vào cái DataArr(18) nên lỗi
Hi bạn
sorry mình tìm lại topic một chút.
Bạn có thể giúp mình một yêu cầu nhỏ như này đc ko.
Hiện tại macro này đang lấy dữ liệu từ tất cả các file chứa ở thư mục có đường dẫn tại ô A1.
Mình muốn chỉnh lại thành lấy dữ liệu từ các file đc chọn, sau khi lấy dữ liệu sẽ ko bị mất dữ liệu cũ.
mong bạn giúp đỡ nhé
Thanks
 
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom