Copy hàng ngang (có ô bị ẩn) paste thành hàng dọc, nhưng không paste những ô đã bị ẩn

Quảng cáo

AnhThu-1976

Thành viên tích cực
Tham gia ngày
17 Tháng mười 2014
Bài viết
824
Được thích
129
Điểm
418
Em chào các Thầy & anh chị,
Tại sheet 1 em có các số liệu, bây giờ em hide cột B và chọn từ ô A1 đến C1 rồi copy
Sang sheet 2 em chọn ô A1 và paste với điều kiện là paste dọc và không paste những ô đã bị hide
Nhờ các Thầy & anh chị giúp em, em cảm ơn!
 

File đính kèm

  • Copy.xlsx
    8.2 KB · Đọc: 4

Nhattanktnn

Thành viên tích cực
Tham gia ngày
11 Tháng mười một 2016
Bài viết
1,431
Được thích
1,357
Điểm
668
Em chào các Thầy & anh chị,
Tại sheet 1 em có các số liệu, bây giờ em hide cột B và chọn từ ô A1 đến C1 rồi copy
Sang sheet 2 em chọn ô A1 và paste với điều kiện là paste dọc và không paste những ô đã bị hide
Nhờ các Thầy & anh chị giúp em, em cảm ơn!
Thử thế này xem sao:
Mã:
Sub NT()
    Sheets("Sheet1").Range("A1:C1").SpecialCells(xlCellTypeVisible).Copy
    Sheets("Sheet2").Range("A1").PasteSpecial , Transpose:=True
    Application.CutCopyMode = False
End Sub
 

AnhThu-1976

Thành viên tích cực
Tham gia ngày
17 Tháng mười 2014
Bài viết
824
Được thích
129
Điểm
418
Thử thế này xem sao:
Mã:
Sub NT()
    Sheets("Sheet1").Range("A1:C1").SpecialCells(xlCellTypeVisible).Copy
    Sheets("Sheet2").Range("A1").PasteSpecial , Transpose:=True
    Application.CutCopyMode = False
End Sub
Nhưng làm sao chuyển code trên để vào ứng dụng thực tế, vì tên sheet khác và Range nó khác
 

Nhattanktnn

Thành viên tích cực
Tham gia ngày
11 Tháng mười một 2016
Bài viết
1,431
Được thích
1,357
Điểm
668
Nhưng làm sao chuyển code trên để vào ứng dụng thực tế, vì tên sheet khác và Range nó khác
Thì lúc đó mới cần đến mấy thứ khai báo biến Rng as range, Ws as worksheet... và thay nó vào vị trí tương ứng của lệnh trên. Bài đưa lên bài toán cụ thể thì mới xem xét được
 

huyhiep12345

Thành viên mới
Tham gia ngày
13 Tháng tám 2017
Bài viết
14
Được thích
0
Điểm
101
Nhờ anh chị trong nhóm giúp đỡ em với ạ.
Em có hạng mục cần đếm số lần xuất hiện trong tháng như file đính kèm.
AC giúp e tạo lệnh được không ạ/
 

File đính kèm

  • Demsolan.xlsx
    10.2 KB · Đọc: 3

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
11,031
Được thích
13,681
Điểm
4,868
Nhờ anh chị trong nhóm giúp đỡ em với ạ.
Em có hạng mục cần đếm số lần xuất hiện trong tháng như file đính kèm.
AC giúp e tạo lệnh được không ạ/
Vấn đề của bạn chả liên quan gì đến chủ đề bài này. Chen vào như vậy là bất lịch sự. Tự mở cho mình một thớt mà hỏi. Thành viên hơn ba nămn rồi mà chưa biết nữa sao? (hay là mượn tên nít vậy?)
 

huyhiep12345

Thành viên mới
Tham gia ngày
13 Tháng tám 2017
Bài viết
14
Được thích
0
Điểm
101
Vấn đề của bạn chả liên quan gì đến chủ đề bài này. Chen vào như vậy là bất lịch sự. Tự mở cho mình một thớt mà hỏi. Thành viên hơn ba nămn rồi mà chưa biết nữa sao? (hay là mượn tên nít vậy?)
Em mượn nick của anh ạ. Chứ a e ko bít.
Ngoài ra, e ko biết đăng bài ở đâu nên em mới viết ở đây ạ.
Có gì sai sót, e xin gỡ bài và tim đúng nơi quy dịnh ạ.
 

Nhattanktnn

Thành viên tích cực
Tham gia ngày
11 Tháng mười một 2016
Bài viết
1,431
Được thích
1,357
Điểm
668
Bài toán cụ thể thì chọn 1 khối ô bất kỳ ở 1 sheet bất kỳ để copy
Sau đó chọn 1 ô bất kỳ ở 1 sheet bất kỳ để paste
Làm vậy bạn dùng thử xem nha:
Mã:
Sub NT()
    Dim sRng As Range, dRng As Range
    On Error Resume Next
    Set sRng = Application.InputBox("Vùng can copy:", "Chon vùng", Type:=8)
    Set dRng = Application.InputBox("Vùng can Paste (chon môt ô):", "Chon vùng", "A1", Type:=8)
    On Error GoTo 0
    If sRng Is Nothing Or dRng Is Nothing Then Exit Sub
    sRng.SpecialCells(xlCellTypeVisible).Copy
    dRng.PasteSpecial , Transpose:=True
    Application.CutCopyMode = False
End Sub
 

AnhThu-1976

Thành viên tích cực
Tham gia ngày
17 Tháng mười 2014
Bài viết
824
Được thích
129
Điểm
418
Làm vậy bạn dùng thử xem nha:
Cảm ơn bạn nhiều
Sao không thấy kết quả là paste values luôn nhỉ dù trong code của bạn mình có thấy PasteSpecial
*************
Mình đã sửa được rồi, sửa
dRng.PasteSpecial , Transpose:=True
sửa thành
dRng.PasteSpecial Paste:=xlPasteValues, Transpose:=True
 
Lần chỉnh sửa cuối:

AnhThu-1976

Thành viên tích cực
Tham gia ngày
17 Tháng mười 2014
Bài viết
824
Được thích
129
Điểm
418
Bây giờ em muốn thông báo bằng MsgBox là số ô đã chọn
Ở code bài 9, sau khi chọn khối ô bằng
Mã:
Set sRng = Application.InputBox("Vùng can copy:", "Chon vùng", Type:=8)
Thì MsgBox thông báo số ô đã chọn nhưng không tính số ô đã ẩn
Ví dụ: em chọn từ A1 đến C1 ( là 3 ô) nhưng ô B1 đã ẩn thì còn 2 ô, như vậy chỉ thông báo là 2 ô
Em cảm ơn!
***********
Em có thử nghiệm, ở dưới dòng
Mã:
Set sRng = Application.InputBox("Vùng can copy:", "Chon vùng", Type:=8)
Em có thêm
Mã:
MsgBox sRng.Value
nhưng nó không thông báo
 

Nhattanktnn

Thành viên tích cực
Tham gia ngày
11 Tháng mười một 2016
Bài viết
1,431
Được thích
1,357
Điểm
668
Bây giờ em muốn thông báo bằng MsgBox là số ô đã chọn
Ở code bài 9, sau khi chọn khối ô bằng
Mã:
Set sRng = Application.InputBox("Vùng can copy:", "Chon vùng", Type:=8)
Thì MsgBox thông báo số ô đã chọn nhưng không tính số ô đã ẩn
Ví dụ: em chọn từ A1 đến C1 ( là 3 ô) nhưng ô B1 đã ẩn thì còn 2 ô, như vậy chỉ thông báo là 2 ô
Em cảm ơn!
***********
Em có thử nghiệm, ở dưới dòng
Mã:
Set sRng = Application.InputBox("Vùng can copy:", "Chon vùng", Type:=8)
Em có thêm
Mã:
MsgBox sRng.Value
nhưng nó không thông báo
Cuối sub để dòng này vào thử xem sao
Mã:
MsgBox Selection.Cells.Count & " ô da duoc dán"
 
Quảng cáo
Top Bottom