hongphuong1997
Thành viên tiêu biểu

- Tham gia
- 12/11/17
- Bài viết
- 773
- Được thích
- 323
- Giới tính
- Nữ
Thử:Nhờ các anh chị viết giúp code dồn kết quả như file đính kèm.
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é?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.Thử:
PHP:Range("B8:V8").SpecialCells(xlCellTypeConstants, 1).Copy Range("H14") Range("B9:V11").SpecialCells(xlCellTypeFormulas, 1).Copy Range("H15")
Đã bẩu không phải Chị rồi mà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à.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.
Ý 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ị" ạ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ác giả vậy nè: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.
hi hi.. cảm ơn chị. chị làm cho em nhé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à.
Đúng là như vậy anh @phuocam oyÝ tác giả vậy nè:
Ô B9 có =SUM(B4:C6)
Làm cách nào mà ô B15 có =SUM(B4:C6)
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
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
Thử một tí tí nhaĐúng là như vậy anh @phuocam oy
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ịThử một tí tí nha
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
Có gì bất thường nhỉ? Bạn xem trong file xem nào.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é.
Ngồi rãnh viết 1 sub cho em không gì bằng 2 từ bá đạoNhờ các anh chị viết giúp code dồn kết quả như file đính kèm.
Có gì bất thường nhỉ? Bạn xem trong file xem nào.
AnhCó gì bất thường nhỉ? Bạn xem trong file xem nào.
No! no. cảm ơn anh nhé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
![]()
Ô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 raAnh
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! Các hạ quả nhiên là lợi hại đó mà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
![]()
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Ô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
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à![]()
Haha xứng đáng bá đạo chưa anh?Ô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
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à![]()
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
![]()
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é.Haha xứng đáng bá đạo chưa anh?
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
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ả?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
Thì cách tốt nhất em làm ở bài 11, thực tế bài đó giải quyết nhanh cho em chỉ cần thay đổi vùng cần copy thôiCả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?
Các hạ lại chưa hiểu ý của nữ thí chủ rồiThì cách tốt nhất em làm ở bài 11, thực tế bài đó giải quyết nhanh cho em chỉ cần thay đổi vùng cần copy thôi
Chứ mấy cái anh viết dưới hình thức cho vui chứ ai mà làm kiểu đó![]()
Anh ơi, cái này anh hỏi mới là trọng tâm anhHỏ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.
Chắc có vui kakaCác hạ lại chưa hiểu ý của nữ thí chủ rồi
Mấy cái công thức đó ban đầu nó chưa có ở vùng bên trên đâu, làm sao sau khi chạy code thì nó mới có công thức như vậy chứ không phải là nó có sẵn để copy xuống.
Nãy giờ anh em chạy trật đường ray hết![]()
Thử làm cái code lợi hại để bon chen với cái code bá đạo trên kia thử xem. Công thức khác, kết quả giống:Anh ơi, cái này anh hỏi mới là trọng tâm anh
nghiaphuc
Công thức cũng không phải như vậy anh à. Đây chỉ là mô phỏng để lấy phương pháp áp dụng cho những trường hợp tương tự thôi anh à,
Đương nhiên khoảng cách thì phải như vậy. Nhưng nó vẫn phải tuân theo quy luât.
Hi hi hi,,,, chắc anh đã nghĩ ra cách can thiệp vào bài toàn roài.
Anh cố giúp em nhé
Cảm ơn anh.
Sub LoiHai()
[B14:F14] = [=COLUMN(A:WWW)]
[B15:F17].FormulaR1C1 = "=SUM(OFFSET(R6C,-ROWS(R13C:R[-1]C),(COLUMN()-2)*4,ROWS(R12C:R[-1]C),2))"
End Sub
Em cũng e ngại vụ khoảng cách cột không đồng đều thì banh xác quá anhThử làm cái code lợi hại để bon chen với cái code bá đạo trên kia thử xem. Công thức khác, kết quả giống:
Mã:Sub LoiHai() [B14:F14] = [=COLUMN(A:WWW)] [B15:F17].FormulaR1C1 = "=SUM(OFFSET(R6C,-ROWS(R13C:R[-1]C),(COLUMN()-2)*4,ROWS(R12C:R[-1]C),2))" End Sub
Cách không đều thì công thức trên kia tèo téo teo ngay. Nhưng mà hên quá, trên kia có câu "Đương nhiên khoảng cách thì phải như vậy." rồi.Em cũng e ngại vụ khoảng cách cột không đồng đều thì banh xác quá anh
hi hi..... cái này cũng giống như một lần bác @ndu96081631 viết cho em một lần ở bài toán khác anh af, làm thì đúng nhưng nhìn kieue R1C1 khó hiểu quá anhThử làm cái code lợi hại để bon chen với cái code bá đạo trên kia thử xem. Công thức khác, kết quả giống:
Mã:Sub LoiHai() [B14:F14] = [=COLUMN(A:WWW)] [B15:F17].FormulaR1C1 = "=SUM(OFFSET(R6C,-ROWS(R13C:R[-1]C),(COLUMN()-2)*4,ROWS(R12C:R[-1]C),2))" End Sub
Anh thì cứ nghe vớ vẩn, làm gì người ta cũng phải tuân theo quy luật của nó chứ. Kể cả làm khoa học lẫn không làm khoa họcCách không đều thì công thức trên kia tèo téo teo ngay. Nhưng mà hên quá, trên kia có câu "Đương nhiên khoảng cách thì phải như vậy." rồi.
Kệ nó, cần gì hiểu đâu, bạn cứ record macro rồi gõ công thức bình thường là sẽ thấy công thức kiểu như vậy trong code thôi. Sau đó thì copy dán qua bên code đang viết. Anh chàng FormulaR1C1 này lợi hại lắm đấy, gán công thức cho cả vùng chỉ cần 1 câu lệnh, khỏe ru.hi hi..... cái này cũng giống như một lần bác @ndu96081631 viết cho em một lần ở bài toán khác anh af, làm thì đúng nhưng nhìn kieue R1C1 khó hiểu quá anh
nghiaphuc
ơi.
Hi hi..... nhưng không làm bằng R1C1 thì công thức trên có sử được không hở anhKệ nó, cần gì hiểu đâu, bạn cứ record macro rồi gõ công thức bình thường là sẽ thấy công thức kiểu như vậy trong code thôi. Sau đó thì copy dán qua bên code đang viết. Anh chàng FormulaR1C1 này lợi hại lắm đấy, gán công thức cho cả vùng chỉ cần 1 câu lệnh, khỏe ru.
Anh @nghiaphuc oy, như vậy thì anh giải quyết bài này quá ngon.Thử làm cái code lợi hại để bon chen với cái code bá đạo trên kia thử xem. Công thức khác, kết quả giống:
Mã:Sub LoiHai() [B14:F14] = [=COLUMN(A:WWW)] [B15:F17].FormulaR1C1 = "=SUM(OFFSET(R6C,-ROWS(R13C:R[-1]C),(COLUMN()-2)*4,ROWS(R12C:R[-1]C),2))" End Sub
Nhưng mà công thức như trên của tôi có được chấp nhận không đã kìa, về kết quả thì nó giống y như các công thức trong file ban đầu của bạn rồi, nhưng lại lợi hơn ở chỗ là dùng 1 công thức cho cả vùng chứ không phải mỗi ô một công thức. Khi lập công thức cho bảng bao giờ người ta cũng đi tìm một công thức chung cho bảng hay ít nhất là cho cột chứ chẳng ai lại đi lập mỗi ô một công thức như vậy cả.Hi hi..... nhưng không làm bằng R1C1 thì công thức trên có sử được không hở anh
nghiaphuc
Bạn quá khen rồi, tôi toàn đi học lỏm không à.hôm nay em mới biết anh siêu phết.
hi hi... học lỏm nhưng thông minh, sáng tạo là quá đingr roài anh oy.Nhưng mà công thức như trên của tôi có được chấp nhận không đã kìa, về kết quả thì nó giống y như các công thức trong file ban đầu của bạn rồi, nhưng lại lợi hơn ở chỗ là dùng 1 công thức cho cả vùng chứ không phải mỗi ô một công thức. Khi lập công thức cho bảng bao giờ người ta cũng đi tìm một công thức chung cho bảng hay ít nhất là cho cột chứ chẳng ai lại đi lập mỗi ô một công thức như vậy cả.
Bạn quá khen rồi, tôi toàn đi học lỏm không à.
Anh oy, cái công thức này sao em nhập vào bảng tính không được nhỉ?Thử làm cái code lợi hại để bon chen với cái code bá đạo trên kia thử xem. Công thức khác, kết quả giống:
Mã:Sub LoiHai() [B14:F14] = [=COLUMN(A:WWW)] [B15:F17].FormulaR1C1 = "=SUM(OFFSET(R6C,-ROWS(R13C:R[-1]C),(COLUMN()-2)*4,ROWS(R12C:R[-1]C),2))" End Sub
Ủa, bạn cứ chạy code đi, và nhìn vào công thức sau khi chạy code thôi, nó có gì lạ đâu, chẳng hạn công thức cho ô B15 nó thế này:Anh oy, cái công thức này sao em nhập vào bảng tính không được nhỉ?
Anh làm ảo thuật hở anh @nghiaphuc ? Anh giải thích cho em với (Hoặc là anh viết cụ thể đi, ai mà hiểu được chết liền)
=SUM(OFFSET(B$6,-ROWS(B$13:B14),(COLUMN()-2)*4,ROWS(B$12:B14),2))
Tất cả 3 thành viên đó chính hiệu là Nam, em lại đi chuyển giới dùm người ta làm chi vậy.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é.
Cháu thấy toàn tên con gái bácTất cả 3 thành viên đó chính hiệu là Nam, em lại đi chuyển giới dùm người ta làm chi vậy.
Lúc nãy em có hỏi thửTất cả 3 thành viên đó chính hiệu là Nam, em lại đi chuyển giới dùm người ta làm chi vậy.
mà chưa thấy trả lời. Em là em nghi lắm áXì-pam tí: Bạn làm nghề gì vậy?
Em cảm ơn anh, nhưng anh ơi cái công thức này cho vào code thì cũng giống như R1C1 hở anh?Ủa, bạn cứ chạy code đi, và nhìn vào công thức sau khi chạy code thôi, nó có gì lạ đâu, chẳng hạn công thức cho ô B15 nó thế này:
Còn nếu bạn muốn nhập công thức y như vậy vào bảng tính thì bạn phải vào Options của Excel và tick vào mục R1C1 reference style.View attachment 201701Mã:=SUM(OFFSET(B$6,-ROWS(B$13:B14),(COLUMN()-2)*4,ROWS(B$12:B14),2))
Lập luận chẳng có tí tẹo lô gic gì cả. Chị này kỳ kỳ ghê!!!Cháu thấy toàn tên con gái bác
Đúng rồi, bạn cứ thử bật chức năng Record macro rồi gõ công thức như trước giờ bạn vẫn gõ. Tiếp theo tắt chức năng Record macro và vào cửa sổ VBE xem nó ra code như thế nào là biết ngay ấy mà. Những công thức dài thì cứ record như vậy chứ hơi đâu mà suy nghĩ cả một mớ lùng bùng R[-6]C[15] gì gì đó cho mệt vậy.Em cảm ơn anh, nhưng anh ơi cái công thức này cho vào code thì cũng giống như R1C1 hở anh?