Nhờ giúp điều chỉnh đoạn code cập nhật dữ liệu

Liên hệ QC

letuongqt

Thành viên hoạt động
Tham gia
26/3/08
Bài viết
141
Được thích
24
Tôi được anh NDU trên diễn đàn chỉ cho đoạn code để cập nhật dữ liệu từ 1 file khác . Đoạn code có dòng

... With .Range(.[A5], .[A65536].End(xlUp)).Resize(, 21) ...

cho phép cập nhật mở rộng đến cột thứ 21 (Khi bấm chạy marco capnhat ). Bây giờ tôi xin các anh giúp cho vấn đề sau :
1/ Tôi muốn cập nhật thêm dữ liệu của cột thứ 23,24,25 (cột 22 khôg cần cần nhật) .
2/ Ở file để lấy dữ liệu cập nhật các giá trị số 0 , khi cập nhật xong vẫn giữ nguyên giá trị 0 (số không - Đoạn code cũ khi chạy giá trị 0 biến thành rỗng )
Như vậy cần phải điểu chỉnh đoạn code như thế nào để được các yêu cầu như trên , xin các anh giúp cho , xin cảm ơn rất nhiều . Tôi xin gởi kèm file (File có tên 6a1 để lấy dữ liệu ; file tên capnhat dùng để cập nhật dữ liệu vào đây ) .

Xin cảm ơn , bây giờ tôi xin post lại nhờ các bạn giúp cho .
PHP:
Sub Capnhat()
  Dim Item, CrtItem As String, FItem As String, FolItem As String, Temp As String
  On Error GoTo Thoat
  Application.ScreenUpdating = False
  With Application.FileDialog(1)
    .AllowMultiSelect = True: .Show
    For Each Item In .SelectedItems
      FolItem = .InitialFileName
      FItem = Replace(Item, FolItem, "")
      CrtItem = Replace(FItem, ".xls", "")
      With ThisWorkbook.Sheets("TH")
       [I][B] With .Range(.[A5], .[A65536].End(xlUp)).Resize(, 21)[/B][/I]
          .AutoFilter 4, CrtItem
          With Intersect(.Cells, .Offset(1, 4))
            Temp = "VLOOKUP(RC2,'" & FolItem & "[" & FItem & "]" & CrtItem & "'!R5C2:R10000C21,COLUMN()-1,0)"
            .SpecialCells(12).Value = "=IF(" & Temp & "=0,""""," & Temp & ")"
            .AutoFilter
            .Value = .Value
          End With
        End With
      End With
    Next
  End With
Thoat:
  Application.ScreenUpdating = True
End Sub
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Tôi được anh NDU trên diễn đàn chỉ cho đoạn code để cập nhật dữ liệu từ 1 file khác . Đoạn code có dòng ... With .Range(.[A5], .[A65536].End(xlUp)).Resize(, 21) ... cho phép cập nhật mở rộng đến cột thứ 21 (Khi bấm chạy marco capnhat ). Bây giờ tôi xin các anh giúp cho vấn đề sau :
1/ Tôi muốn cập nhật thêm dữ liệu của cột thứ 23,24,25 (cột 22 khôg cần cần nhật) .
2/ Ở file để lấy dữ liệu cập nhật các giá trị số 0 , khi cập nhật xong vẫn giữ nguyên giá trị 0 (số không - Đoạn code cũ khi chạy giá trị 0 biến thành rỗng )
Như vậy cần phải điểu chỉnh đoạn code như thế nào để được các yêu cầu như trên , xin các anh giúp cho , xin cảm ơn rất nhiều . Tôi xin gởi kèm file (File có tên 6a1 để lấy dữ liệu ; file tên capnhat dùng để cập nhật dữ liệu vào đây ) .
Sửa lại tí thôi mà ---> Thêm Union vào
Xem file
 

File đính kèm

Upvote 0
Tôi làm VD của bạn tổng hợp có 02 lớp 6a16b1 để chung một Forder tên Lop

Bạn mở File Tonghop sau đó click tổng hợp để tổng hợp cả 2 lớp.

Trường hợp bạn muốn tổng hợp của từng lớp thì cột AC bạn có thể để 01 tên lớp nếu tổng hợp nhiểu lớp thì bạn gõ thêm lớp vào.

Chắc đúng ý của bạn.

Cuối tuần vui vẻ
 

File đính kèm

Upvote 0
Cảm ơn anh ndu rất nhiều . Còn ý thứ 2 nhờ anh giúp luôn cho : Nếu giá trị là số 0 thì kết quả cập nhật phải là 0 ( ở đây : giá trị 0 , khi cập nhật qua kết quả là ô rỗng )
Thì ngay đoạn:
PHP:
Union(.Cells, .Offset(, 18).Resize(, 3)).SpecialCells(12).Value = "=IF(" & Temp & "=0,""""," & Temp
bạn sửa thành
PHP:
Union(.Cells, .Offset(, 18).Resize(, 3)).SpecialCells(12).Value = "=" & Temp
 
Upvote 0
Thì ngay đoạn:
PHP:
Union(.Cells, .Offset(, 18).Resize(, 3)).SpecialCells(12).Value = "=IF(" & Temp & "=0,""""," & Temp
bạn sửa thành
PHP:
Union(.Cells, .Offset(, 18).Resize(, 3)).SpecialCells(12).Value = "=" & Temp
Không phải như vậy anh NDU , ý tôi là : Nếu giá trị 0 thì phải cập nhật là 0 ;
Nếu ô rỗng ----> cập nhật vẫn là rỗng .
Nếu làm như anh chỉ phần trên thì dù là giá trị 0 , rỗng sau khi chạy code đều biến thành giá trị 0 tất - Temp = "VLOOKUP(RC2,'" & FolItem & "[" & FItem & "]" & CrtItem & "'!R5C2:R10000C25,COLUMN()-1,0)" sẽ cho kết quả là 0 (nếu là 0 hoặc "" ) . hay là ta có thể sử dụng hàm khác . Mong anh thông cảm giúp cho , rất cảm ơn .
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Thì ngay đoạn:
PHP:
Union(.Cells, .Offset(, 18).Resize(, 3)).SpecialCells(12).Value = "=IF(" & Temp & "=0,""""," & Temp
bạn sửa thành
PHP:
Union(.Cells, .Offset(, 18).Resize(, 3)).SpecialCells(12).Value = "=" & Temp
Nếu thay bằng dòng này vào ( Union(.Cells, .Offset(, 18).Resize(, 3)).SpecialCells(12).Value = "=" & Temp) thì cả giá trị là số 0 hoặc rỗng đều cho ra giá trị 0 tất cả - đây là điều không mong muốn , điều mong muốn phải là : Nếu điểm 0 --> cập nhật là 0 ; Nếu là rỗng (không có điểm) kết quả là ô rỗng - xin các anh giúp cho , ccamr ơn rất nhiều .
 

File đính kèm

Upvote 0
Nếu thay bằng dòng này vào ( Union(.Cells, .Offset(, 18).Resize(, 3)).SpecialCells(12).Value = "=" & Temp) thì cả giá trị là số 0 hoặc rỗng đều cho ra giá trị 0 tất cả - đây là điều không mong muốn , điều mong muốn phải là : Nếu điểm 0 --> cập nhật là 0 ; Nếu là rỗng (không có điểm) kết quả là ô rỗng - xin các anh giúp cho , ccamr ơn rất nhiều .
Thì thay:
PHP:
Union(.Cells, .Offset(, 18).Resize(, 3)).SpecialCells(12).Value = "=IF(" & Temp & "=0,""""," & Temp
thành:
PHP:
Union(.Cells, .Offset(, 18).Resize(, 3)).SpecialCells(12).Value = "=IF(" & Temp & "="""",""""," & Temp
 
Upvote 0
Web KT

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

Back
Top Bottom