Viết vba copy công thức của dòng trên cho các dòng dưới (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hamhocarsenal

Thành viên mới
Tham gia
25/11/08
Bài viết
10
Được thích
0
Vd dòng B2 của mình có công thức là 3+B1, bây giờ mình muốn viết macro cho việc tự copy công thức trên cho các dòng từ B3 trở đi, anh em nào có thể giúp mình không??? Và đối với dữ liệu có giới hạn ( ở đây mình có dữ liệu đến ô B8 ), làm sao để nó tự biết là chỉ copy formula đến ô B8 thôi.
Mình mới học vba nên chưa rõ ràng lắm, cám ơn mọi người quan tâm giúp đỡ.
 

File đính kèm

Vd dòng B2 của mình có công thức là 3+B1, bây giờ mình muốn viết macro cho việc tự copy công thức trên cho các dòng từ B3 trở đi, anh em nào có thể giúp mình không??? Và đối với dữ liệu có giới hạn ( ở đây mình có dữ liệu đến ô B8 ), làm sao để nó tự biết là chỉ copy formula đến ô B8 thôi.
Mình mới học vba nên chưa rõ ràng lắm, cám ơn mọi người quan tâm giúp đỡ.
Cái này rất dễ (sorry nhé). Bạn tự record 1 macro, copy B2 và chọn đến B8, paste. Nhấn F11 xem thử. Sẽ hiểu ngay thôi.
 
Upvote 0
thnks bạn, thêm cái nữa là mình muốn nó chỉ copy có giới hạn ( ở đây là giới hạn số dòng ), làm sao để no tự biết copy từ ô B2 đến B8,
 
Upvote 0
thnks bạn, thêm cái nữa là mình muốn nó chỉ copy có giới hạn ( ở đây là giới hạn số dòng ), làm sao để no tự biết copy từ ô B2 đến B8,
Tôi tự ghi 1 macro như sau:
PHP:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 25/11/2008 by Admin
'

'
Range("B2").Select
        Selection.Copy
    Range("B3:B8").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub
Dán vào từ 3->8, nếu thích thì sửa 8 thành 100
Range("B3:B8").Select
Cao cấp hơn thì dùng
PHP:
Sub GanTT()
Dim iR As Long
Sheet1.Select
For iR = 2 To 8
    Range("B" & iR).Value = Range("B" & iR - 1).Value + 3
Next
End Sub
Nghĩa là Bn=B(n-1)+3
n=2 ->8
 
Upvote 0
Bạn sử dụng vòng lặp để điền tất cả bằng 3+B1 (B1 cũng dịch theo)
Mã:
Sub dien_ct()
dongden=inputbox("Nhap dien den dong nao:")
For i = 3 To dongden
Sheet1.Cells(i, 2).Formula = "=3+B" & i-1
Next
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Nói về các thuộc tính công thức chúng ta chỉ cần lưu ý các thuộc tính sau:

1. Dùng thuộc tính
Mã:
HasFormula
để xác định xem ô chọn có công thức hay không?
2. Dùng thuộc tính
Mã:
Formula
để lấy công thức của ô chọn.

Ví dụ: tạo ô A1 tôi có công thức
Mã:
=6+B3
nếu bạn dùng
Mã:
Range("A1").Formula
sẽ trả về công thức trên. Còn nếu bạn dùng
Mã:
Range("A1").HasFormula
sẽ trả về TRUE.

Ngoài ra :
Nếu chỉ muốn dùng giá trị thôi thì bạn dùng thuộc tính
Mã:
Value
.
Nếu bạn muốn lấy Text được thể hiện theo định dạng (Ví dụ như bạn định dạng ô A1 là Accounting thì số 6 sẽ hiển thị là $ 6.00) thì bạn dùng thuộc tính
Mã:
Text
Vbavn
 
Lần chỉnh sửa cuối:
Upvote 0
Tùy chuyện mà dùng For... với bài này mà dùng For mà dở nhất
Sao không dùng cách mà ThuNghi đã Record macro rồi chỉnh lại
ví dụ:
PHP:
Sub Test()
 [B2].Copy
 Range("B3:B" & k).PasteSpecial
 Application.CutCopyMode = False
End Sub
Với k là chỉ số dòng cần giới hạn (chắc ăn nhanh hơn For)
 
Upvote 0
Tôi thấy hơi hơi... Ẹc.. Ẹc...
- Nếu đã dùng VBA thì sao không bỏ luôn công thức, lấy giá trị thôi cho nó "nhẹ máy"
- Còn như muốn copy công thức thôi thì sao không chọn vùng từ cell cuối chứa công thức đến cell nào đó giới hạn, sau đó bấm Ctrl + D
???
 
Upvote 0
Nếu đã dùng VBA thì sao không bỏ luôn công thức, lấy giá trị thôi cho nó "nhẹ máy"
phải từ công thức mới có số chứ, đâu phải là số có sẵn
Còn như muốn copy công thức thôi thì sao không chọn vùng từ cell cuối chứa công thức đến cell nào đó giới hạn, sau đó bấm Ctrl + D
???
Ý mình mong muốn thiết kế 1 template, click vào nó tự giải, thnks all
 
Upvote 0
phải từ công thức mới có số chứ, đâu phải là số có sẵn
Sai rồi... VBA cũng lấy được giá trị... chỉ cần biết yêu cầu của bạn là gì!
Nên nhớ VBA không chắc là làm được mọi thứ nhưng cái gì công thức làm được thì VBA cũng làm được (có khi còn tốt hơn)---> Còn điều ngược lại thì.. hiếm lắm
Vậy bạn nói thử mục đích của bạn là gì đi, sẽ có người làm cho bạn chỉ toàn bằng VBA (chẳng cần tí công thức nào)
 
Upvote 0
mình biết, nhưng ý mình là các số đó phải được qua tính toán thôi
Nhân tiện cho mình hỏi thêm, mình ghi lại cái record vẽ đồ thị này, nhưng khi chỉnh sửa kích thước và vị trí cho đồ thị, copy code sang cái mới, nó lại ko chạy nữa, vậy mình muốn hỏi làm sao để đặt đồ thị tại nơi mình muốn với kích thước đồ thị mong muốn trong vba ( ở đây đồ thị đặt trong sheet hiện hành luôn )
Thnks and best regard!
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom