Chèn thêm hàng cho nhiều sheet VBA

Liên hệ QC

Thanh Bình PV

Thành viên hoạt động
Tham gia
30/10/19
Bài viết
151
Được thích
19
Em muốn chèn thêm hàng cho toàn bộ sheet có tên đầu là "Sheet" ( Sheet1, Sheet - b, Sheet9, ...).
Ví dụ : chèn thêm 1 ô vào hàng B10 cho tất cả các sheet có tên đầu là "Sheet"
Em đã thử nhưng chỉ chèn được có 1 sheet và nó chèn đi chèn lại chỉ 1 sheet đó thôi ạ.

Mã:
Sub row()
Dim i As Integer
Dim sh As Worksheet
Dim j As Integer
Dim arr As Variant
ActiveCell.EntireRow.Select
i = InputBox("Enter number of row to insert", "Insert Row")
For Each sh In Worksheets
For j = 1 To i
If InStr(1, sh.Name, "Sheet") Then
arr = Array(InStr(1, sh.Name, "Sheet"))
Selection.EntireRow.Insert
End If
Next
Next
End Sub
 
Lần chỉnh sửa cuối:
Em muốn chèn thêm hàng cho toàn bộ sheet có tên đầu là "Sheet" ( Sheet1, Sheet - b, Sheet9, ...).
Ví dụ : chèn thêm 1 ô vào hàng B10 cho tất cả các sheet có tên đầu là "Sheet"
Em đã thử nhưng chỉ chèn được có 1 sheet và nó chèn đi chèn lại chỉ 1 sheet đó thôi ạ.

Mã:
Sub row()
Dim i As Integer
Dim sh As Worksheet
Dim j As Integer
Dim arr As Variant
ActiveCell.EntireRow.Select
i = InputBox("Enter number of row to insert", "Insert Row")
For Each sh In Worksheets
For j = 1 To i
If InStr(1, sh.Name, "Sheet") Then
arr = Array(InStr(1, sh.Name, "Sheet"))
Selection.EntireRow.Insert
End If
Next
Next
End Sub

Do code của bạn thiếu phần để activecell của sheet mới nên nó vẫn nhận activecell của sheet đầu tiên.
Bạn xem phần code dưới mình có sửa từ code của bạn để hiểu rõ.
Mã:
Sub row()

Dim i As Integer

Dim sh As Worksheet

Dim j As Integer

Dim arr As Variant

Dim add As String

 

ActiveCell.EntireRow.Select

add = ActiveCell.Address(False, False)

i = InputBox("Enter number of row to insert", "Insert Row")

For Each sh In Worksheets

    For j = 1 To i

        If InStr(1, sh.Name, "Sheet") Then

        'arr = Array(InStr(1, sh.Name, "Sheet"))

        sh.Range(add).EntireRow.Insert

        End If

    Next

Next

End Sub
 
Do code của bạn thiếu phần để activecell của sheet mới nên nó vẫn nhận activecell của sheet đầu tiên.
Bạn xem phần code dưới mình có sửa từ code của bạn để hiểu rõ.
Mã:
Sub row()

Dim i As Integer

Dim sh As Worksheet

Dim j As Integer

Dim arr As Variant

Dim add As String

ActiveCell.EntireRow.Select

add = ActiveCell.Address(False, False)

i = InputBox("Enter number of row to insert", "Insert Row")

For Each sh In Worksheets

    For j = 1 To i

        If InStr(1, sh.Name, "Sheet") Then

        'arr = Array(InStr(1, sh.Name, "Sheet"))

        sh.Range(add).EntireRow.Insert

        End If

    Next

Next

End Sub
Em hiểu rồi ạ. Em cảm ơn anh.
 
Web KT

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

Back
Top Bottom