Copy dồn mảng kết quả

Liên hệ QC
Lần chỉnh sửa cuối:
Thử:
PHP:
Range("B8:V8").SpecialCells(xlCellTypeConstants, 1).Copy Range("H14")
Range("B9:V11").SpecialCells(xlCellTypeFormulas, 1).Copy Range("H15")
hi hi... đẻ em xem có đúng không đã chị nhé?
À nhưng em cần là vẫn giữ nguyên công thức tham chiếu cơ mà chị
Bài đã được tự động gộp:

Thử:
PHP:
Range("B8:V8").SpecialCells(xlCellTypeConstants, 1).Copy Range("H14")
Range("B9:V11").SpecialCells(xlCellTypeFormulas, 1).Copy Range("H15")
Chị ơi, tức là lôi cả công thức xuống chị à, không phải như vậy.
 
hi hi... đẻ em xem có đúng không đã chị nhé?
À nhưng em cần là vẫn giữ nguyên công thức tham chiếu cơ mà chị
Bài đã được tự động gộp:


Chị ơi, tức là lôi cả công thức xuống chị à, không phải như vậy.
Đã bẩu không phải Chị rồi mà :p:p:p
 
hi hi... đẻ em xem có đúng không đã chị nhé?
À nhưng em cần là vẫn giữ nguyên công thức tham chiếu cơ mà chị
Bài đã được tự động gộp:


Chị ơi, tức là lôi cả công thức xuống chị à, không phải như vậy.
Tôi thấy trong File của bạn có công thức, nên tôi lấy công thức. Nếu không muốn công thức, cũng được thôi mà.
 
Tôi thấy trong File của bạn có công thức, nên tôi lấy công thức. Nếu không muốn công thức, cũng được thôi mà.
Ý của bạn í là ở vùng bên dưới cũng có chứa công thức như vùng bên trên chứ không chỉ giá trị "chị" ạ :p
 
Cái này là dùng cho dữ liệu như trong file, khác đi thì phải chế biến lại bạn nhé:
Mã:
Sub Test()
    Dim Cll As Range
    [B8:V8].SpecialCells(xlCellTypeConstants, 1).Copy [B14]
    [B9:V11].SpecialCells(xlCellTypeFormulas, 1).Copy [B15]
    For Each Cll In [B15:F17]
        Cll.Formula = Cll.Offset(-6, (Cll.Column - 2) * 4).Formula
    Next
End Sub
Nếu không quan tâm đến định dạng thì bạn bỏ luôn 2 câu lệnh đầu sub và đổi [B15:F17] thành [B14:F17], code còn lại thế này:
Mã:
Sub Test()
    Dim Cll As Range
    For Each Cll In [B14:F17]
        Cll.Formula = Cll.Offset(-6, (Cll.Column - 2) * 4).Formula
    Next
End Sub
Xì-pam tí: Bạn làm nghề gì vậy?
 
Thử một tí tí nha :p:p:p
PHP:
Sub DonDon()
    Dim sArr, dArr, I As Long, J As Long, K As Long, Col As Long, C As Long
Col = Application.CountA(Range("B8:W8"))
sArr = Range("B8:B11").Resize(, 22).Formula
ReDim dArr(1 To UBound(sArr), 1 To Col)
For I = 1 To UBound(sArr)
    K = K + 1
    For J = 1 To UBound(sArr, 2)
        If sArr(I, J) <> Empty Then
            C = C + 1
            dArr(K, C) = sArr(I, J)
            If C = Col Then C = 0
        End If
    Next J
Next I
Range("H14").Resize(K, Col) = dArr
End Sub
 
Thử một tí tí nha :p:p:p
PHP:
Sub DonDon()
    Dim sArr, dArr, I As Long, J As Long, K As Long, Col As Long, C As Long
Col = Application.CountA(Range("B8:W8"))
sArr = Range("B8:B11").Resize(, 22).Formula
ReDim dArr(1 To UBound(sArr), 1 To Col)
For I = 1 To UBound(sArr)
    K = K + 1
    For J = 1 To UBound(sArr, 2)
        If sArr(I, J) <> Empty Then
            C = C + 1
            dArr(K, C) = sArr(I, J)
            If C = Col Then C = 0
        End If
    Next J
Next I
Range("H14").Resize(K, Col) = dArr
End Sub
Em cảm ơn chị
♫ђöล♥ßล†♥†µ♫ anh
nghiaphuc chị
phulien1902

Vẫn không phải các anh chị ơi, ý của em là như này ::"Dịch chuyển code thôi anh chị à" Các anh chị xem lại và giúp em nhé.
 

File đính kèm

File đính kèm

File đính kèm

Có gì bất thường nhỉ? Bạn xem trong file xem nào.
Có gì bất thường nhỉ? Bạn xem trong file xem nào.
Anh
nghiaphuc
ơi, ý tưởng của em là ngay từ công thức của mảng đầu tiên triển khai được như thế, chứ không phải là copy từ trên xuống anh à.
Anh nghĩ cách giúp e nhé.
Cảm ơn các anh chị,
Bài đã được tự động gộp:

Ngồi rãnh viết 1 sub cho em không gì bằng 2 từ bá đạo :)) Đảm bảo xem biết thay đổi vị trí khi cần :D
No! no. cảm ơn anh nhé
Như này thì em làm bằng tay còn nhanh hơn.
Nhưng dẫu sao cũng rất cảm ơn anh.
 
Anh
nghiaphuc
ơi, ý tưởng của em là ngay từ công thức của mảng đầu tiên triển khai được như thế, chứ không phải là copy từ trên xuống anh à.
Anh nghĩ cách giúp e nhé.
Cảm ơn các anh chị,
Ôi trời đất! Bây giờ mới hiểu, nãy giờ vẫn cứ tưởng là công thức đã có sẵn bên trên, làm sao để copy xuống bên dưới và vẫn giữ nguyên tham chiếu như công thức ở trên. Hóa ra là em nó chưa được sinh ra :p
Cái vụ hiểu lầm này là do bạn à nha. Nếu lúc đầu bạn đừng để công thức ở mấy hàng 8:11 thì anh "chị" em đâu có trật đường ray như vậy.

Ngồi rãnh viết 1 sub cho em không gì bằng 2 từ bá đạo :)) Đảm bảo xem biết thay đổi vị trí khi cần :D
Ôi! Các hạ quả nhiên là lợi hại đó mà :p
 
Ôi trời đất! Bây giờ mới hiểu, nãy giờ vẫn cứ tưởng là công thức đã có sẵn bên trên, làm sao để copy xuống bên dưới và vẫn giữ nguyên tham chiếu như công thức ở trên. Hóa ra là em nó chưa được sinh ra :p
Cái vụ hiểu lầm này là do bạn à nha. Nếu lúc đầu bạn đừng để công thức ở mấy hàng 8:11 thì anh "chị" em đâu có trật đường ray như vậy.

Ôi! Các hạ quả nhiên là lợi hại đó mà :p
Hi hi... mấy cái bên trên là em mô phỏng để mọi người dễ hiểu thui mà anh
nghiaphuc
 
Ôi trời đất! Bây giờ mới hiểu, nãy giờ vẫn cứ tưởng là công thức đã có sẵn bên trên, làm sao để copy xuống bên dưới và vẫn giữ nguyên tham chiếu như công thức ở trên. Hóa ra là em nó chưa được sinh ra :p
Cái vụ hiểu lầm này là do bạn à nha. Nếu lúc đầu bạn đừng để công thức ở mấy hàng 8:11 thì anh "chị" em đâu có trật đường ray như vậy.

Ôi! Các hạ quả nhiên là lợi hại đó mà :p
Haha xứng đáng bá đạo chưa anh? ;):p
Bài đã được tự động gộp:

Ngồi rãnh viết 1 sub cho em không gì bằng 2 từ bá đạo :)) Đảm bảo xem biết thay đổi vị trí khi cần :D
Mã:
Rút ngắn lại tý
Sub Test()
    Dim rSrc As Range
    Dim rDst As Range
    Dim vSrc As Variant
    
    Set rSrc = Range(["B8:B11"])
    Set rDst = Range("B14")
    vSrc = rSrc.Formula
   rDst.Resize(UBound(vSrc, 1)).Formula = (vSrc)
   Set rSrc = Range(["G8:G11"])
   Set rDst = Range("C14")
    vSrc = rSrc.Formula
   rDst.Resize(UBound(vSrc, 1)).Formula = (vSrc)
   Set rSrc = Range(["L8:L11"])
   Set rDst = Range("D14")
    vSrc = rSrc.Formula
   rDst.Resize(UBound(vSrc, 1)).Formula = (vSrc)
   Set rSrc = Range(["Q8:Q11"])
   Set rDst = Range("E14")
    vSrc = rSrc.Formula
   rDst.Resize(UBound(vSrc, 1)).Formula = (vSrc)
   Set rSrc = Range(["V8:V11"])
   Set rDst = Range("F14")
    vSrc = rSrc.Formula
   rDst.Resize(UBound(vSrc, 1)).Formula = (vSrc)
End Sub
 
Lần chỉnh sửa cuối:
Haha xứng đáng bá đạo chưa anh? ;):p
Bài đã được tự động gộp:


Mã:
Rút ngắn lại tý
Sub Test()
    Dim rSrc As Range
    Dim rDst As Range
    Dim vSrc As Variant
   
    Set rSrc = Range(["B8:B11"])
    Set rDst = Range("B14")
    vSrc = rSrc.Formula
   rDst.Resize(UBound(vSrc, 1)).Formula = (vSrc)
   Set rSrc = Range(["G8:G11"])
   Set rDst = Range("C14")
    vSrc = rSrc.Formula
   rDst.Resize(UBound(vSrc, 1)).Formula = (vSrc)
   Set rSrc = Range(["L8:L11"])
   Set rDst = Range("D14")
    vSrc = rSrc.Formula
   rDst.Resize(UBound(vSrc, 1)).Formula = (vSrc)
   Set rSrc = Range(["Q8:Q11"])
   Set rDst = Range("E14")
    vSrc = rSrc.Formula
   rDst.Resize(UBound(vSrc, 1)).Formula = (vSrc)
   Set rSrc = Range(["V8:V11"])
   Set rDst = Range("F14")
    vSrc = rSrc.Formula
   rDst.Resize(UBound(vSrc, 1)).Formula = (vSrc)
End Sub
Cảm ơn anh , bài này dưới 0 độ C anh nhé, anh nghĩ cách khác xem như nào anh nhé.
Nếu hàng ngàn mảng như vậy anh làm như nào?
 
Hi hi... mấy cái bên trên là em mô phỏng để mọi người dễ hiểu thui mà anh
nghiaphuc
Hỏi lại bạn một chút này: Công thức có nhất thiết phải y như vậy không, hay là dùng công thức khác cũng được, miễn ra đúng kết quả?
Thêm nữa, dữ liệu thực tế của bạn có giống như vùng bên trên hay không? Nghĩa là gồm có nhiều vùng, mỗi vùng có 5 hàng, 2 cột và các vùng cách đều nhau đúng với khoảng cách như vậy, dữ liệu trong mỗi vùng khi nào cũng được nhập đầy đủ như vậy.
Biết đâu lại có cách khác hay hơn.
 
Web KT

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

Back
Top Bottom