Hỏi đáp VBA trong chủ đề "Chập chững đến VBA"

Liên hệ QC

luongchihien

Thành viên mới
Tham gia
26/8/11
Bài viết
7
Được thích
1
Em xem đề tài và học hỏi được một tí, với yêu cầu như vậy! Trong file excel có sheet "Form" và sheet "Thong Tin KH" bây giờ em muốn nhập vào form (từ ô D4: D32, như trong file) rồi enter thì dữ liệu được nhập vào sheet "Thong Tin KH". Mong mọi người giúp đỡ
Em mò mẫn mãi mà ko ra ( em làm được cái gì là đính kèm hết trong file đó. gồm file excel và word chứa code)
Cảm ơn trước, cho những ai giúp đỡ!
 

File đính kèm

  • aa.xlsx
    35.8 KB · Đọc: 57
  • Code nhập vào Module.doc
    31.5 KB · Đọc: 70
Chào các bạn!
Mình có cột H, bắt đầu từ ô H6 đến H20000, trong các ô này có ô là dữ liệu kiểu số hoặc dữ liệu kiểu Text (VD : ô H6 là 123, ô H7 là "TA123" ,...) Bây giờ mình muốn các bạn hướng dẫn sử dụng code nào để xóa các ô có dữ liệu kiểu số nhưng vẫn giữ kiểu Text lại!
Xin cảm ơn!
Em chậm chân hơn anh Quanghai rồi, tất cả là tại con 3G phải nghĩ cách khác thôi, huhuhu
PHP:
Sub DelConts()
Dim i As Long, Rng As Range
Set Rng = [H6:H20000]
For i = 6 To 20000
    If IsNumeric(Cells(i, 8)) Then
        Cells(i, 8).ClearContents
    End If
Next
Rng.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
End Sub
 
Upvote 0
Em chậm chân hơn anh Quanghai rồi, tất cả là tại con 3G phải nghĩ cách khác thôi, huhuhu
PHP:
Sub DelConts()
Dim i As Long, Rng As Range
Set Rng = [H6:H20000]
For i = 6 To 20000
    If IsNumeric(Cells(i, 8)) Then
        Cells(i, 8).ClearContents
    End If
Next
Rng.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
End Sub
Em ơi 20 000 dòng mà mình xử lý trên sheet chắc chạy hơi chậm và có thể là quá chậm, máy yếu có thể đơ luôn đó.
 
Upvote 0
Em ơi 20 000 dòng mà mình xử lý trên sheet chắc chạy hơi chậm và có thể là quá chậm, máy yếu có thể đơ luôn đó.
Em bít, em bít, ai biểu tại con 3G chậm, em viết code xong thấy anh post bài rồi em phải nghĩ cách khác chứ sao nữa, máy anh bị treo hả, cho anh chít, hiiiiiiiiiiii
Gửi LienDong : nhớ dùng mảng kẻo bị treo máy nhé, cách của mình hơi dàiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!hi
 
Lần chỉnh sửa cuối:
Upvote 0
Nhờ chỉnh code copy Paste value
Mình đã record macro như sau
Mã:
Sub Macro2()
'
    Range("D6:D18").Select
    Selection.Copy
    Range("G6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True
    Application.CutCopyMode = False
    
End Sub
Nhờ các bạn sửa code, sau khi copy thì chọn ô để paste rồi bấm code để paste thành hàng ngang hay ngược lại
cảm ơn cả nhà!
 
Upvote 0
Nhờ chỉnh code copy Paste value
Mình đã record macro như sau
Mã:
Sub Macro2()
'
    Range("D6:D18").Select
    Selection.Copy
    Range("G6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True
    Application.CutCopyMode = False
    
End Sub
Nhờ các bạn sửa code, sau khi copy thì chọn ô để paste rồi bấm code để paste thành hàng ngang hay ngược lại
cảm ơn cả nhà!
Các bạn hỗ trợ mình bài này với
Mình đã thay đổi như sau, nhưng vẫn báo lỗi
Mã:
[COLOR=#000000]Sub Macro_3()[/COLOR]
       Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True   Application.CutCopyMode = False    
End Sub
Cảm ơn các bạn
 
Upvote 0
Các bạn hỗ trợ mình bài này với
Mình đã thay đổi như sau, nhưng vẫn báo lỗi
Mã:
[COLOR=#000000]Sub Macro_3()[/COLOR]
       Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True   Application.CutCopyMode = False    
End Sub
Cảm ơn các bạn
PHP:
Sub copy()
Range("D6:D18").copy
Range("G6").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
End Sub

Lại nào :
PHP:
Sub Lainao()
Selection.copy
Range("D6").PasteSpecial Paste:=xlPasteValues, Transpose:=True
   Application.CutCopyMode = False
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Chào các bạn!
Mình có cột H, bắt đầu từ ô H6 đến H20000, trong các ô này có ô là dữ liệu kiểu số hoặc dữ liệu kiểu Text (VD : ô H6 là 123, ô H7 là "TA123" ,...) Bây giờ mình muốn các bạn hướng dẫn sử dụng code nào để xóa các ô có dữ liệu kiểu số nhưng vẫn giữ kiểu Text lại!
Xin cảm ơn!
bài này có thể sử dụng chức năng Goto Special để thao tác tôi thấy cũng nhanh lắm, không cần tời code đâu
 
Upvote 0
Các bạn hỗ trợ mình bài này với
Mình đã thay đổi như sau, nhưng vẫn báo lỗi
Mã:
[COLOR=#000000]Sub Macro_3()[/COLOR]
       Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True   Application.CutCopyMode = False    
End Sub
Cảm ơn các bạn
Bạn thử với code này
Mã:
Sub PasteValues_Transpose()
    Dim rng As Object
    On Error Resume Next
    Set rng = Selection
    If Application.CutCopyMode Then
        If TypeOf rng Is Range Then rng(1, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
    End If
    Application.CutCopyMode = False
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Bạn thử với code này
Mã:
Sub PasteValues_Transpose()
    Dim rng As Object
    On Error Resume Next
    Set rng = Selection
    If Application.CutCopyMode Then
        If TypeOf rng Is Range Then rng(1, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
    End If
    Application.CutCopyMode = False
End Sub

Thay vì dùng Selection phải mất công xét xem Selection có phải là Range hay không, ta dùng luôn ActiveCell cho khỏe
Vì: Selection chưa chắc là Range nhưng ActiveCell thì chắc chắn 100% là Range rồi
Mã:
Sub PasteValues_Transpose()
  On Error Resume Next
  If Application.CutCopyMode = [COLOR=#ff0000]xlCopy[/COLOR] Then ActiveCell.PasteSpecial 3, , , True
End Sub
Lưu ý chổ màu đỏ: Chỉ khi Ctrl + C mới chơi, còn Ctrl + X thì.. miễn
 
Upvote 0
Web KT
Back
Top Bottom