¿Cómo crear un sistema de ingreso y cobro a través de EXCEL?
2. ¿Dos interfaces?
1. Interfaz de entrada de datos: la función de front-end utiliza esta interfaz para implementar "ingresar, guardar, consultar, borrar y modificar"
2. datos en segundo plano; interfaz de entrada:
En tercer lugar, el método de implementación es 1. Función de guardado Sub Save()'?
Guardar datos Marco, producido por Little Monkey, hora 2013-9-5'?
¿Dimr1, R2, R3 como rangos con tablas ("almacenamiento de datos")?
Establezca r2 =. ¿El rango("a2",[a100000].End(xlUp)) termina en?
¿Con tablas ("entrada de datos")? Establezca r1 =. ¿Rango("c4:e4,d6:l39 ")?
Si está vacío(.range ("C4")) o isempty(.range ("E4")) entonces 'o isempty(.range ("B7: b41 ")) el nuevo departamento no está vacío . MsgBox fallido ("¡La codificación y el nombre están vacíos y no se pueden guardar!")?
Establezca r3 = r2. Find(.Cells(4,3),,,1) Si no es r3, ¿entonces no es nada?
MsgBox("Este código ya existe y no se puede guardar. Si necesita modificar esta información, haga clic en "Consultar antes de modificar")
¿Qué más?
Tabla de trabajo("almacén de datos"). InsertShift: = xldown? Rango("c6:l39")? p>
rango("C2:L2").
hoja("A2:A35"). pegar pasta especial:= rango("e4")?
Hoja de trabajo("B2:B35"). ? ¿Borrar la interfaz de entrada después de guardar los datos?
). Fin si finaliza con la función de consulta final Sub Query()'. ¿Macro de filtro de consulta, producida por Xiaohou, hora 2013-9-5 ' '?
¿Dimerow como entero r1, R2 como rango con hoja de trabajo ("entrada de datos")? ?
Erow = Sheets("Almacenamiento de datos"). [a100000 End(xlUp).
Borrar contenido
Para cada ce en. [a2:x2]?
If ce & lt& gt" then ce Value = " * " & ampce & amp"*" ? 'Agregar comodín * Implementar consulta difusa.
If IsEmpty(.Range("c4")) o IsEmpty(.Range("e4")) entonces
O IsEmpty(.Range("b7:b41 ")) no pudo agregar el departamento
MsgBox("¡La codificación y el nombre están vacíos y no se pueden consultar!")
Worksheet("datastore").range("a 1:l"&Erow).AdvancedFilterOperation :=xlFilterCopy, Rango de criterios:=_. [c3:e4],CopiarAlRango:=. [A5:l5], único:=falso?
r2. borde (xlDiagonalAbajo). LineStyle = xlNinguno r2. borde(xlDiagonalArriba). LineStyle = xlNinguno
r2. borde (xlEdgeLeft). LineStyle = xlNinguno
r2. Borde (xlEdgeTop). LineStyle = xlNinguno
r2. Borde (xlEdgeBottom).
LineStyle = xlNinguno
r2. borde (xlEdgeRight). LineStyle = xlNinguno r2. borde (xlInsideVertical). LineStyle = xlNinguno
r2. borde (xlInsideHorizontal). LineStyle = xlNinguno
r2. numberformatlocal = ";;"
Para cada ce en. [a2:x2]?
Si ce & lt& gt" "entonces ce. ¿Valor = Medio(ce, 2, Len(ce) - 2)? '¿Cancelar el comodín "*"?
¿Siguiente? Finalizar si finaliza con End Sub
3.Actualizar Sub Update()'?
¿Macro de actualización, producida por Xiaohou, hora 2013-9-5?
¿Dim arr,d como objeto?
¿Dim r As rango?
¿Atenuar lr & amp, I & amp, j%?
Utilice la consulta Hojas ("entrada de datos") para modificar el área de datos de la hoja de cálculo y escribirla en la matriz arr?
arr =. range("A7:D" & range("A65536").end(xlUp).fila)?
arr =. ¿Rango("a6:l39 ")?
Supongamos r =. ¿Rango("d6:l39 ")?
Termina con...
¿Set d = createobject("script.dictionary ")' define un objeto de diccionario?
¿Para I = 1 unir fila por fila (arr)'?
Si Len(arr(i, 2))& lt;& gt0 entonces 'drena la fila 'total', ¿cuáles son los datos del servicio de nombres?
Si d.exists(arr(i,1)&arr(i,2) y amparr(i,3)) no existe entonces d(arr(i,1)&arr ( i, 2) y amparr (i, 3)) = arr (i, 4) & Chr (9) y amparr (i, 5) _?
& ampChr(9) y amparr(i, 6) y ampChr(9) y amparr(i, 7) y ampChr(9) y amparr(i, 8) y ampChr(9) y amparr (i,9)&Chr(9)&arr(i,10)&Chr(9)&arr(i,11)&Chr(9)&arr(i,12)
La última oración: Si el El diccionario que conecta la cadena de codificación y nombre no existe (la primera vez que aparece, el juicio aquí puede ser redundante), la cadena se agregará al valor de la clave del diccionario y los campos de atributos relacionados posteriores se agregarán a través de una conexión de pestaña. entrada del diccionario.
¿Finalizar si? ¿Próximo?
? ¿Con tablas ("almacenamiento de datos")?
? Lr=. rango ("a100000"). final (xlup). fila '¿fila de datos de la hoja de trabajo de almacenamiento de datos?
. rango ("C2:D" y LR). celda especial (xlcelltypeconstants, 23). ¿"Borrar contenido" borra los valores de las columnas C y D sin celdas de fórmula?
arr =. range(" A2:l " & Lr)'¿Escribir matriz arr en el área de datos de la hoja de trabajo de almacenamiento de datos?
¿Para I = 1 unir fila por fila (arr)'?
Si d.exists(arr(i,1)&arr(i,2)&&Arr(i,3)) Si el diccionario de codificación y cadena de concatenación de nombres existe, existe en el medio de la Hoja2.
Para j = 4 a 12' D, e, f... ¿columna por columna?
Si no es la celda(I,j). TieneFórmula Entonces Celdas(i, j) = Split(d(arr(i, 1)amp; arr(i, 2)), Chr(9))(j - 3)
Si la celda sin una fórmula, los datos correspondientes a la Hoja2 se escriben en la celda.
.
celda (i?+?1,?j)? =?Dividir(d(arr(i,1)?& amp?arr(i,?2)?& amp?arr(i,?3)),?Chr(9))(j?-?4)?
¿Siguiente?
¿Fin? ¿si?
¿Siguiente?
¿Fin? ¿Qué usar?
r.¿Borrar contenidos?
hoja("
Entrada de datos
").celda(4,?3).select?
¿Cuadro de mensajes? ("
Los datos han sido actualizados. Para ver el contenido actualizado, por favor haga clic en el botón para consultar").