Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo escribir una verificación de Excel para la entrada repetida de datos y el guardado automático en la programación VB?

¿Cómo escribir una verificación de Excel para la entrada repetida de datos y el guardado automático en la programación VB?

Evento 'SheetChange, que se activa cuando cambia el valor de la celda

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Dim s As String

With Target 'Para reducir las llamadas a objetos, use la instrucción With

If .Value = "" Then Exit Sub 'El valor está vacío, salga

s = Left (Format(.Value), 6) 'Toma los 6 dígitos en el lado izquierdo de la celda

Si .Column = 1 O .Column = 2 Entonces

Si (. Columna = 1 Y s <> "131754") _

O (.Columna = 2 Y s <> "860584") Entonces 'Si los 6 dígitos a la izquierda de la etiqueta de red no son 131754, se mostrará un error

MsgBox "¡Error de entrada! ¡Compruebe la categoría de entrada actual!"

.Select

.Value = ""

Else

If Not IsRepeat(Target, 2) Then 'Compruebe si hay valores repetidos en la columna actual (verifique desde la fila 2)

If .Column = 1 Luego

Celdas (.Fila, . Columna + 1). Seleccionar

Otra opción

Celdas (.Fila + 1, .Columna - 1). Seleccionar

End If

ThisWorkbook.Save 'Guardar el archivo

End If

End If

End If

Terminar con

End Sub

'El siguiente código se inserta en el módulo para verificar si hay valores duplicados en la misma columna

Función IsRepeat(ByVal Target As Range, ByVal lngBeginRow As Long) Como booleano

Dim strCol Como cadena, strRow Como cadena, lngEndRow As Long, curValue

Dim s( ), countMemo As Long, cx As Long

Dim intRep As Integer

Si lngBeginRow < 1, entonces salga de la función

'Valor de entrada

curValue = Target.Value

'Coloque todos los valores de la columna actual en valores numéricos y calcule la longitud del valor

strRow = Format(lngBeginRow)

strCol = Reemplazar(Reemplazar(Celdas(1

, Target.Column).Address, "$", ""), "1", "")

lngEndRow = ActiveSheet.UsedRange.Rows.Count

s = Range( strCol & strRow & ":" & strCol & Format(lngEndRow))

countMemo = UBound(s)

'Compruebe si hay valores duplicados

Para cx = 1 Para contarMemo

Si curValue = s(cx, 1) Entonces

intRep = intRep + 1

Si intRep = 2 Entonces'Regresar con duplicado valores IsRepeat = True

Salir de la función

Finalizar si

Finalizar si

Siguiente

Finalizar función

Siguiente

Finalizar función