Nhờ sửa code Insert dòng có chứa công thức (1 người xem)

Liên hệ QC

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

Miccpro

Thành viên thường trực
Tham gia
9/12/10
Bài viết
236
Được thích
10
Mình đã đọc bài này http://www.giaiphapexcel.com/forum/showthread.php?15852-VBA-copy-công-thức-khi-thêm-dòng và thấy cách của Thầy Phạm Duy Long rất hay. Tuy nhiên việc sử dụng kích đúp chuột để thêm dòng hơi bất tiện. Mình muốn bỏ lệnh kick đúp chuột đi và chỉ cần phải chuột rồi Insert thì lệnh vẫn được thực hiện, hoặc thêm vào phải chuột một Macro "chèn thêm dòng" hiện box "số dòng cần thêm" => đánh số dòng cần thêm thì sẽ thêm số dòng tương ứng và công thức vẫn giữ nguyên (cái này hơi tham ạ /-*+/).
Mong các bác cao thủ giúp đỡ, cảm ơn nhiều ạ@$@!^%@$@!^%@$@!^%
 

File đính kèm

Mình đã đọc bài này http://www.giaiphapexcel.com/forum/showthread.php?15852-VBA-copy-công-thức-khi-thêm-dòng và thấy cách của Thầy Phạm Duy Long rất hay. Tuy nhiên việc sử dụng kích đúp chuột để thêm dòng hơi bất tiện. Mình muốn bỏ lệnh kick đúp chuột đi và chỉ cần phải chuột rồi Insert thì lệnh vẫn được thực hiện, hoặc thêm vào phải chuột một Macro "chèn thêm dòng" hiện box "số dòng cần thêm" => đánh số dòng cần thêm thì sẽ thêm số dòng tương ứng và công thức vẫn giữ nguyên (cái này hơi tham ạ /-*+/).
Mong các bác cao thủ giúp đỡ, cảm ơn nhiều ạ@$@!^%@$@!^%@$@!^%
Việc đầu tiên là bạn xóa Code cũ đi. Sau đó bạn chép code dưới đây vào Module
PHP:
Sub AddRowsEmpty()
    Dim Rng As Long
    Application.DisplayAlerts = False
    On Error Resume Next
    Rng = InputBox("Xin moi nhap so dong can Insert.")
    On Error GoTo 0
    Application.DisplayAlerts = True
    If Rng = 0 Then
        MsgBox "Ban da khong chon dong nao"
        Exit Sub
    Else
        Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(Rng, 0)).Select
        Selection.EntireRow.Insert
    End If
    With Sheets(1)
        .Range("B:B").FillDown
    End With
End Sub
Để thêm dong mới bạn đặt trỏ chuột nằm trong khoảng A1:A20 và chạy Code nhé
 
Upvote 0
Cảm ơn bác phulien1902, nhưng code của bác chỉ chay được 1 lần, lần thứ 2 sẽ bị Run-time error '1004'; có cách gì gán được nút Insert chuột phải luôn không bác
Bạn bỏ 3 dòng dưới đây đi:
Mã:
[COLOR=#000000][COLOR=#007700] [/COLOR][COLOR=#0000BB]With Sheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700])
        .[/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"B:B"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]FillDown
    End With[/COLOR][/COLOR]

Còn để Click chuột phải thì tôi chưa biết cách.
 
Upvote 0
Vẫn chỉ insert được 2 lần thồi bác à, híc
 
Upvote 0
Code mới đây, các bác xem thế nào nhé:
PHP:
Sub ThemDongMoi()
    Dim Rng As Long
    Dim LastRow As Long
    Application.DisplayAlerts = False
    On Error Resume Next
    Rng = InputBox("Xin moi nhap so dong can Insert.")
    On Error GoTo 0
    Application.DisplayAlerts = True
    If Rng = 0 Then
        MsgBox "Ban da khong chon dong nao"
        Exit Sub
    Else
        Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(Rng, 0)).Select
        Selection.EntireRow.Insert
    End If
    LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Range("B2:B" & LastRow).FillDown

End Sub
 
Upvote 0
File của bác Phulien gửi được rồi ạ, cảm ơn bác rất nhiều. Giờ tìm cách gán cái macro này vào chuột phải nữa thì tuyệt vời ông mặt trời}}}}}}}}}}}}}}}}}}}}
 
Lần chỉnh sửa cuối:
Upvote 0
Sự kiện lick phải chuột khác với ý của tác giả mong muốn.... Chả nhẻ cứ nằm trong vùng đó, bạn click phải chuột chỉ để mỗi việc chèn dòng... Mõi lần lick phải nó hiện lên...thì phát mệt ah? Click phải chuột còn phải làm nhiều việc khác nhiều hơn nữa mà... nào là định dạng, xóa xòng,.... cả 1 mớ luôn... Chưa làm mà cái bản đòi chèn dòng nó hiện ra thì lúc đó tổ bực thêm...:-=:-=:-=

Ý tác giả là tích hợp vào menu chuột phải luôn ấy...
Ờ có nhẽ thế đến giờ buồn ngủ mắt cứ díp lại chả nghĩ được gì. Cảm ơn bạn nha. Hay thay bằng trái chuột. Ha ha
 
Upvote 0
Sự kiện lick phải chuột khác với ý của tác giả mong muốn.... Chả nhẻ cứ nằm trong vùng đó, bạn click phải chuột chỉ để mỗi việc chèn dòng... Mõi lần lick phải nó hiện lên...thì phát mệt ah? Click phải chuột còn phải làm nhiều việc khác nhiều hơn nữa mà... nào là định dạng, xóa xòng,.... cả 1 mớ luôn... Chưa làm mà cái bản đòi chèn dòng nó hiện ra thì lúc đó tổ bực thêm...:-=:-=:-=

Ý tác giả là tích hợp vào menu chuột phải luôn ấy...
Em đang nghiên cứu bài này mà vẫn chưa gán được bác ạ, gà quá, hic
http://www.giaiphapexcel.com/forum/...Làm-sao-gắn-các-lệnh-Macro-vào-nút-phải-chuột
 
Upvote 0
Hic, cái của bác phulien1902 rất hay nhưng nó không giữ nguyên công thức khi insert. Mải nghịch lung tung giờ mới để ý yêu cầu là insert có công thức. Bác nào giúp em cái được không ạ
 
Upvote 0
Hic, cái của bác phulien1902 rất hay nhưng nó không giữ nguyên công thức khi insert. Mải nghịch lung tung giờ mới để ý yêu cầu là insert có công thức. Bác nào giúp em cái được không ạ
Tôi thì thấy bình thường, còn bạn chỗ nào thấy chưa được thì chụp hình hoặc gửi File lên đây tôi xem.
 
Upvote 0
Tôi thì thấy bình thường, còn bạn chỗ nào thấy chưa được thì chụp hình hoặc gửi File lên đây tôi xem.
Cảm ơn bác đã quan tâm, ý của em như đầu bài, tức là insert hàng và copy luôn công thức hàng trên nó hoặc dưới nó, ví dụ file em gửi dưới đây là cột J chẳng hạn
 

File đính kèm

Upvote 0
Bác siêu thật, nhưng em chỉ ví dụ cột J thôi, nếu cột bất kỳ hoặc 1 hàng có nhiều ô có công thức thì thế nào bác. Híc, em đòi hỏi nhiều quá, thanks bác
 
Upvote 0
Bác siêu thật, nhưng em chỉ ví dụ cột J thôi, nếu cột bất kỳ hoặc 1 hàng có nhiều ô có công thức thì thế nào bác. Híc, em đòi hỏi nhiều quá, thanks bác

Chỉ có File mới có thể có câu trả lời chính xác được bạn ah.
Có lẽ đã muộn rồi, mình cũng phải đi nghỉ, mai còn phải đi cày,hiii. Chúc bạn ngủ ngon!
 
Upvote 0
Bác siêu thật, nhưng em chỉ ví dụ cột J thôi, nếu cột bất kỳ hoặc 1 hàng có nhiều ô có công thức thì thế nào bác. Híc, em đòi hỏi nhiều quá, thanks bác
Thì cũng thực hiện tương tự bác. Vì dụ cần copy công thức các cột từ S9:V9 đến S18:V18 thì code thế này đây:
Mã:
Range("s9:v18").FillDown
 
Upvote 0
Bạn muốn FillDown công thức từ cột S tới cột V bạn thêm dòng này nè:
PHP:
Range("S1:V1" & LastRow).FillDown
 
Upvote 0
Em gửi file em đang làm viêc bác Phulien giúp em cái nha. Insert hàng có công thức. Cảm ơn bác
 

File đính kèm

Upvote 0

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

Back
Top Bottom