[Help] Xin hỏi dùng macro để gán dữ liệu. (1 người xem)

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

Heracles1976

Thành viên mới
Tham gia
10/6/15
Bài viết
35
Được thích
7
Các Bác giúp E trường hợp muốn gán dữ liệu vào 1 ô bằng cách chạy Macro thế nào với ạ, đơn giản mà không biết làm huhu...
 

File đính kèm

Các Bác giúp E trường hợp muốn gán dữ liệu vào 1 ô bằng cách chạy Macro thế nào với ạ, đơn giản mà không biết làm huhu...
Bạn dùng cái này thử:
Mã:
Public Sub Chenthang()
    Dim n As Integer
On Error GoTo Thoat
n = Application.InputBox("Nhap so thang: ")
Range("F4") = n
Thoat:
End Sub
 
Đơn giản?
PHP:
Sub abc()
    Dim a
    a = InputBox("Xin moi nhap 1 so", "GPE", 1)
    Range("F4").Value = a
End Sub

Cảm ơn Bác, cái này còn đơn giản hơn..

Tiện đây cho E hỏi thêm 1 cái macro xóa dòng trong bảng tính. VD: Khi chạy marco đó nó sẽ hỏi: "Bạn muốn xóa dòng số mấy: ", mình nhập số 8 vào thì nó xóa cả dòng số 8 trong bảng tính đó với ạ.
 
Cảm ơn Bác, cái này còn đơn giản hơn..

Tiện đây cho E hỏi thêm 1 cái macro xóa dòng trong bảng tính. VD: Khi chạy marco đó nó sẽ hỏi: "Bạn muốn xóa dòng số mấy: ", mình nhập số 8 vào thì nó xóa cả dòng số 8 trong bảng tính đó với ạ.
Bạn thử:
PHP:
Sub Delet_abc()
    Dim b As Long
    b = InputBox("Xin moi nhap dong can xoa", "GPE", 1)
    Range(Cells(b, 2), Cells(b, 3)).Delete Shift:=xlUp
End Sub
 
Bạn thử:
PHP:
Sub Delet_abc()
    Dim b As Long
    b = InputBox("Xin moi nhap dong can xoa", "GPE", 1)
    Range(Cells(b, 2), Cells(b, 3)).Delete Shift:=xlUp
End Sub
Ơ Bác ơi, cái này nó chỉ xóa 2 ô thôi ạ..?

Em muốn nó xóa cả dòng như kiểu mình bôi đen bằng Shift+Space rồi phải chuột chọn Delete cơ thì phải làm sao ạ
 
Ơ Bác ơi, cái này nó chỉ xóa 2 ô thôi ạ..?

Em muốn nó xóa cả dòng như kiểu mình bôi đen bằng Shift+Space rồi phải chuột chọn Delete cơ thì phải làm sao ạ
Bạn sửa thành như thế này xem được không
Mã:
Sub Delet_abc()
    Dim b As Long
b = InputBox("Xin moi nhap dong can xoa", "GPE", 1)
Cells(b, 1).EntireRow.Delete
End Sub
 
Lần chỉnh sửa cuối:
Bạn sửa thành như thế này xem được không
Mã:
Sub Delet_abc()
    Dim b As Long
b = InputBox("Xin moi nhap dong can xoa", "GPE", 1)
Cells(b, 1).EntireRow.Delete
End Sub
InputBox là phải bẫy lỗi (khi Cancel).
Sao không dùng Rows().Delete?
Nếu "ăn gian" thì có thể viết kiểu thế này:
PHP:
On Error Resume Next
Rows(InputBox("Xin moi nhap dong can xoa", "GPE", 1)).Delete
 
Hay quá Bác.

E xin hỏi thêm tí tí, liệu E chỉ cho phép xóa dòng thứ 18 trở đi thì có làm được không ạ, cần phải sửa macro thế nào ạ.
Bạn thử:
PHP:
Sub abc()
    Dim LR As Long, i As Long
    With Sheets(1)
        LR = .Range("A" & .Rows.Count).End(xlUp).Row
             For i = LR To 18 Step -1
          Rows(i).EntireRow.Delete
        Next i
    End With
End Sub
 
Lần chỉnh sửa cuối:
Bạn thử:
PHP:
Sub abc()
    Dim LR As Long, i As Long
    With Sheets(1)
        LR = .Range("A" & .Rows.Count).End(xlUp).Row
             For i = LR To 8 Step -1
          Rows(i).EntireRow.Delete
        Next i
    End With
End Sub
Tôi nghĩ vầy sẽ nhanh hơn, không biết có đúng không nửa.
Mã:
Sub abc()
    Dim LR As Long
    With Sheets(1)
        LR = .Range("A" & .Rows.Count).End(xlUp).Row
        If LR > 17 Then Rows("18:" & LR).EntireRow.Delete
    End With
End Sub
 
Vậy thử đúng ý ko?
Sub xyz()
On Error Resume Next
Rows(InputBox("Xin moi nhap dong can xoa", "GPE", 18) & ":" & Cells.Rows.Count).Delete
End Sub
 
Bạn lấy bẫy lỗi của bài 10 bỏ vào là xong thôi

Dạ, chạy thử thấy được rồi ạ. Macro mạnh quá đi mất...

Cho E hỏi thêm câu cuối. Sau khi chạy mấy thứ trên, E muốn đặt 1 dòng lệnh tại A19 bằng công thức: =IF(RC[1]=0;0;COUNTIF(R18C3:RC[1];"<>0")) thì E phải viết thế nào ạ, hi hi
 
Dạ, chạy thử thấy được rồi ạ. Macro mạnh quá đi mất...

Cho E hỏi thêm câu cuối. Sau khi chạy mấy thứ trên, E muốn đặt 1 dòng lệnh tại A19 bằng công thức: =IF(RC[1]=0;0;COUNTIF(R18C3:RC[1];"<>0")) thì E phải viết thế nào ạ, hi hi
Bạn thử:
PHP:
Range("A19").Formula = "=IF(RC[1]=0;0;COUNTIF(R18C3:RC[1];""<>0""))"
 
View attachment 182417

Mỗi lần E đưa cái công thức này vào thì nó báo lỗi như trên và Gạch vàng ở dòng Range("A19").Formula = "=IF(RC[1]=0;0;COUNTIF(R18C3:RC[1];""<>0""))" Bác ạ, sao thế nhỉ?
Bạn có thể tự làm code gán công thức của bạn như sau:
1. Nhập công thức như ý muốn của bạn bằng thủ công
2. Bấm Record macro
3. Kích đôi chuột vào ô chứa công thức mong muốn -> Enter
4. Stop Rec...
Vào VBA "thu hoạch" code .
 
Bạn có thể tự làm code gán công thức của bạn như sau:
1. Nhập công thức như ý muốn của bạn bằng thủ công
2. Bấm Record macro
3. Kích đôi chuột vào ô chứa công thức mong muốn -> Enter
4. Stop Rec...
Vào VBA "thu hoạch" code .
Hay quá Bác, E tự xử được luôn cái của E rồi. tks Bác nhiều!
 

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

Back
Top Bottom