Xài tạm cái nàyChào mọi người,
Hiện tại mình muốn viết một hàm VBA khi nhấn 1 nút thì ô đã được chọn sẽ tự cộng thêm 1 ,mà mình làm hoài ko được(VBA mình chỉ đang tìm hiểu)
Mong mọi người giúp đỡ
Cám ơn mọi người đã đọc
Public Sub Them1()
If IsNumeric(ActiveCell.Value) Then
ActiveCell.Value = ActiveCell.Value + 1
Else
MsgBox "Không phai là so, không cong duoc"
End If
End Sub
Mình chọn nhiều ô cùng lúc thì sửa code thế nào bạn?Xài tạm cái này
Mã:Public Sub Them1() If IsNumeric(ActiveCell.Value) Then ActiveCell.Value = ActiveCell.Value + 1 Else MsgBox "Không phai là so, không cong duoc" End If End Sub
Code cùi bắp:Mình chọn nhiều ô cùng lúc thì sửa code thế nào bạn?
Public Sub Them1()
Dim cell As Range
For Each cell In Selection
If IsNumeric(cell) Then
cell.Value = cell.Value + 1
Else
MsgBox "Không phai là so, không cong duoc"
End If
Next cell
End Sub
Chọn một vùng có nhiều ô không phải số nhấp mỏi tay.Code cùi bắp:
Mã:Public Sub Them1() Dim cell As Range For Each cell In Selection If IsNumeric(cell) Then cell.Value = cell.Value + 1 Else MsgBox "Không phai là so, không cong duoc" End If Next cell End Sub
Tắt dòng đó đi. Chủ yếu là làm mẫu cho người hỏi tham khảo.Chọn một vùng có nhiều ô không phải số nhấp mỏi tay.
thanks b vì đã giúp đỡ tận tìnhXài tạm cái này
Mã:Public Sub Them1() If IsNumeric(ActiveCell.Value) Then ActiveCell.Value = ActiveCell.Value + 1 Else MsgBox "Không phai là so, không cong duoc" End If End Sub
Nhâp mỏi gối mới sợ chứ mỏi tay nhằm nhòi gì.Chọn một vùng có nhiều ô không phải số nhấp mỏi tay.
Private BackupValues As Variant
Private BackupObject As Object
Sub Add1ForValues()
If TypeName(Selection) <> "Range" Then
Exit Sub
End If
If Selection.Address = Selection.Cells.Address Then
Exit Sub
End If
If IsError(Selection.Value) Then
Exit Sub
End If
BackupValues = Selection.Value
Dim s$
Set BackupObject = Selection
s = BackupObject.Address
BackupObject.Value = Application.Evaluate("=if(ISNUMBER(" & s & "),1 +" & s & "," & s & ")")
Application.OnUndo "UndoAdd1ForValues", "'" & ThisWorkbook.Name & "'!UndoAdd1ForValues"
End Sub
Sub UndoAdd1ForValues()
On Error Resume Next
If TypeName(BackupObject) <> "Range" Then
Exit Sub
End If
BackupObject.Value = BackupValues
If IsArray(BackupValues) Then
Erase BackupValues
End If
Set BackupObject = Nothing
End Sub