EXCEL VBA,仅在条件验证时允许
我需要一个条件,看看一个项目是否有库存在X wharehouse(CC),如果有任何库存超过用户可以移动,如果没有库存超过项目不能移动。 现在我有一个条件,不允许从1移动到最大库存EXCEL VBA,仅在条件验证时允许,vba,excel,if-statement,Vba,Excel,If Statement,我需要一个条件,看看一个项目是否有库存在X wharehouse(CC),如果有任何库存超过用户可以移动,如果没有库存超过项目不能移动。 现在我有一个条件,不允许从1移动到最大库存 last = Application.ThisWorkbook.Worksheets("Registos").Range("A65536").End(xlUp).Row For i = 1 To last REFERENCIA = Application.ThisWorkbook.Worksh
last = Application.ThisWorkbook.Worksheets("Registos").Range("A65536").End(xlUp).Row
For i = 1 To last
REFERENCIA = Application.ThisWorkbook.Worksheets("Registos").Cells(i, 8)
ENTRADAeSAIDA = Application.ThisWorkbook.Worksheets("Registos").Cells(i, 12)
CC = Application.ThisWorkbook.Worksheets("Registos").Cells(i, 6)
salto_1:
If REFERENCIA = registos.TextBox1 And registos.ComboBox1 = "SAÍDA" Then
Worksheets("registos").Select
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=8, Criteria1:= _
registos.TextBox1.Text 'Filtrar referência
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=6, Criteria1:= _
registos.Label11.Caption 'Filtrar CC
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=12, Criteria1:= _
"ENTRADA" 'Filtrar Entrada
'Somar quantidades de peças de Entrada
xty100 = ThisWorkbook.Worksheets("calculos").Range("A1")
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=12, Criteria1:= _
"SAÍDA" 'Filtrar Saída
'Somar quantidade de peças de saída
xty101 = ThisWorkbook.Worksheets("calculos").Range("A1")
sumfinal = xty100 - xty101 'Calculo do Stock
ThisWorkbook.Worksheets("calculos").Range("A20") = Format(registos.TextBox4, "@")
xtybx4 = ThisWorkbook.Worksheets("calculos").Range("A20")
If xtybx4 <= sumfinal And xtybx4 > 0 Then
GoTo salto_2
Else
MsgBox "Não foi possível concluir o movimento!Stock " & sumfinal & ""
GoTo fim
End If
End If
Next i
salto_2:
If registos.TextBox3 = "" And registos.TextBox1 <> "" And registos.TextBox2 <> "" And registos.TextBox4 <> "" And registos.ComboBox5 <> "" Then
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 1) = Now() 'data
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 5) = registos.Label20.Caption 'ano fiscal
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 6) = registos.Label11.Caption 'cc
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 7) = a1logiin.TextBox1 'operario
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 8) = registos.TextBox1 'referencia formata
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 9) = registos.TextBox2 'ordem
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 11) = Format(registos.TextBox4, "#") 'quantidade
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 12) = registos.ComboBox1 'ENTRADA/SAIDA
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 13) = registos.ComboBox5 ' ESTADO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 14) = Format(registos.ComboBox3, "#") 'CODIGO DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 16) = registos.ComboBox6 'ORIGEM DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 17) = registos.TextBox5 'OBSERVAÇÕES
MsgBox "Dados introduzidos com sucesso!"
'GoTo fim
GoTo fim2
End If
MsgBox "Insira todos os dados"
GoTo fim
fim2: If registos.ComboBox1 <> "SAÍDA" Then
GoTo fim
End If
If registos.ComboBox1 = "SAÍDA" And registos.TextBox3 = "" And registos.TextBox1 <> "" And registos.TextBox2 <> "" And registos.TextBox4 <> "" And registos.ComboBox5 <> "" And registos.ComboBox2 <> "" Then
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 1) = Now() 'data
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 5) = registos.Label20.Caption 'ThisWorkbook.Worksheets("anofiscal").Range("A1") 'ano fiscal
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 6) = registos.ComboBox2 'cc
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 7) = a1logiin.TextBox1 'operario
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 8) = registos.TextBox1 'referencia formata
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 9) = registos.TextBox2 'ordem
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 11) = Format(registos.TextBox4, "#") 'quantidade
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 12) = "ENTRADA" 'Define a saída de um como a entrada de outro
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 13) = registos.ComboBox5 ' ESTADO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 14) = Format(registos.ComboBox3, "#") 'CODIGO DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 16) = registos.ComboBox6 'ORIGEM DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 17) = registos.TextBox5 'OBSERVAÇÕES
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 18) = registos.ComboBox7 'detalhe produção
GoTo fim
End If
If contador = 1 Then
MsgBox "Foi efetuado o registo de " & contador & " referência!", vbInformation
' Else
' MsgBox "Foi efetuado o registo de " & contador & " referências!", vbInformation
End If
contador = 0
GoTo fim:
fim:
End Sub
下面是我的情况,假设是检查入住,如果没有入住,就不能进行任何结账我的问题是,我第一次运行CommandButton时,它不起作用,因此在没有任何入住的情况下会进行结账,在我第一次运行CommandButton后,它工作正常,但不正常,因为它也不允许我移动任何东西,即使我有库存
If registos.ComboBox1 = "SAÍDA" Then
If REFERENCIA <> registos.TextBox1 And CC = registos.Label11.Caption Then
MsgBox "Não existe em stock!"
GoTo fim
Else: GoTo salto_1
End If
End If
salto_1:
If REFERENCIA = registos.TextBox1 And registos.ComboBox1 = "SAÍDA" Then
Worksheets("registos").Select
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=8, Criteria1:= _
registos.TextBox1.Text 'Filtrar referência
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=6, Criteria1:= _
registos.Label11.Caption 'Filtrar CC
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=12, Criteria1:= _
"ENTRADA" 'Filtrar Entrada
'Somar quantidades de peças de Entrada
xty100 = ThisWorkbook.Worksheets("calculos").Range("A1")
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=12, Criteria1:= _
"SAÍDA" 'Filtrar Saída
'Somar quantidade de peças de saída
xty101 = ThisWorkbook.Worksheets("calculos").Range("A1")
sumfinal = xty100 - xty101 'Calculo do Stock
ThisWorkbook.Worksheets("calculos").Range("A20") = Format(registos.TextBox4, "@")
xtybx4 = ThisWorkbook.Worksheets("calculos").Range("A20")
If xtybx4 <= sumfinal And xtybx4 > 0 Then
GoTo salto_2
Else
MsgBox "Não foi possível concluir o movimento!Stock " & sumfinal & ""
GoTo fim
End If
End If
Next i
salto_2:
If registos.TextBox3 = "" And registos.TextBox1 <> "" And registos.TextBox2 <> "" And registos.TextBox4 <> "" And registos.ComboBox5 <> "" Then
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 1) = Now() 'data
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 5) = registos.Label20.Caption 'ano fiscal
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 6) = registos.Label11.Caption 'cc
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 7) = a1logiin.TextBox1 'operario
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 8) = registos.TextBox1 'referencia formata
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 9) = registos.TextBox2 'ordem
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 11) = Format(registos.TextBox4, "#") 'quantidade
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 12) = registos.ComboBox1 'ENTRADA/SAIDA
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 13) = registos.ComboBox5 ' ESTADO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 14) = Format(registos.ComboBox3, "#") 'CODIGO DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 16) = registos.ComboBox6 'ORIGEM DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 17) = registos.TextBox5 'OBSERVAÇÕES
MsgBox "Dados introduzidos com sucesso!"
'GoTo fim
GoTo fim2
End If
MsgBox "Insira todos os dados"
GoTo fim
fim2: If registos.ComboBox1 <> "SAÍDA" Then
GoTo fim
End If
If registos.ComboBox1 = "SAÍDA" And registos.TextBox3 = "" And registos.TextBox1 <> "" And registos.TextBox2 <> "" And registos.TextBox4 <> "" And registos.ComboBox5 <> "" And registos.ComboBox2 <> "" Then
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 1) = Now() 'data
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 5) = registos.Label20.Caption 'ThisWorkbook.Worksheets("anofiscal").Range("A1") 'ano fiscal
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 6) = registos.ComboBox2 'cc
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 7) = a1logiin.TextBox1 'operario
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 8) = registos.TextBox1 'referencia formata
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 9) = registos.TextBox2 'ordem
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 11) = Format(registos.TextBox4, "#") 'quantidade
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 12) = "ENTRADA" 'Define a saída de um como a entrada de outro
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 13) = registos.ComboBox5 ' ESTADO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 14) = Format(registos.ComboBox3, "#") 'CODIGO DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 16) = registos.ComboBox6 'ORIGEM DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 17) = registos.TextBox5 'OBSERVAÇÕES
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 18) = registos.ComboBox7 'detalhe produção
GoTo fim
End If
If contador = 1 Then
MsgBox "Foi efetuado o registo de " & contador & " referência!", vbInformation
' Else
' MsgBox "Foi efetuado o registo de " & contador & " referências!", vbInformation
End If
contador = 0
GoTo fim:
fim:
End Sub
如果registos.combox1=“SAÍDA”那么
如果referencea registos.TextBox1和CC=registos.Label11.Caption,则
MsgBox“不存在em股票!”
转到fim
其他:GoTo salto_1
如果结束
如果结束
结束这里的条件
salto_1:
If REFERENCIA = registos.TextBox1 And registos.ComboBox1 = "SAÍDA" Then
Worksheets("registos").Select
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=8, Criteria1:= _
registos.TextBox1.Text 'Filtrar referência
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=6, Criteria1:= _
registos.Label11.Caption 'Filtrar CC
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=12, Criteria1:= _
"ENTRADA" 'Filtrar Entrada
'Somar quantidades de peças de Entrada
xty100 = ThisWorkbook.Worksheets("calculos").Range("A1")
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=12, Criteria1:= _
"SAÍDA" 'Filtrar Saída
'Somar quantidade de peças de saída
xty101 = ThisWorkbook.Worksheets("calculos").Range("A1")
sumfinal = xty100 - xty101 'Calculo do Stock
ThisWorkbook.Worksheets("calculos").Range("A20") = Format(registos.TextBox4, "@")
xtybx4 = ThisWorkbook.Worksheets("calculos").Range("A20")
If xtybx4 <= sumfinal And xtybx4 > 0 Then
GoTo salto_2
Else
MsgBox "Não foi possível concluir o movimento!Stock " & sumfinal & ""
GoTo fim
End If
End If
Next i
salto_2:
If registos.TextBox3 = "" And registos.TextBox1 <> "" And registos.TextBox2 <> "" And registos.TextBox4 <> "" And registos.ComboBox5 <> "" Then
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 1) = Now() 'data
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 5) = registos.Label20.Caption 'ano fiscal
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 6) = registos.Label11.Caption 'cc
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 7) = a1logiin.TextBox1 'operario
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 8) = registos.TextBox1 'referencia formata
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 9) = registos.TextBox2 'ordem
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 11) = Format(registos.TextBox4, "#") 'quantidade
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 12) = registos.ComboBox1 'ENTRADA/SAIDA
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 13) = registos.ComboBox5 ' ESTADO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 14) = Format(registos.ComboBox3, "#") 'CODIGO DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 16) = registos.ComboBox6 'ORIGEM DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 1, 17) = registos.TextBox5 'OBSERVAÇÕES
MsgBox "Dados introduzidos com sucesso!"
'GoTo fim
GoTo fim2
End If
MsgBox "Insira todos os dados"
GoTo fim
fim2: If registos.ComboBox1 <> "SAÍDA" Then
GoTo fim
End If
If registos.ComboBox1 = "SAÍDA" And registos.TextBox3 = "" And registos.TextBox1 <> "" And registos.TextBox2 <> "" And registos.TextBox4 <> "" And registos.ComboBox5 <> "" And registos.ComboBox2 <> "" Then
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 1) = Now() 'data
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 5) = registos.Label20.Caption 'ThisWorkbook.Worksheets("anofiscal").Range("A1") 'ano fiscal
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 6) = registos.ComboBox2 'cc
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 7) = a1logiin.TextBox1 'operario
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 8) = registos.TextBox1 'referencia formata
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 9) = registos.TextBox2 'ordem
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 11) = Format(registos.TextBox4, "#") 'quantidade
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 12) = "ENTRADA" 'Define a saída de um como a entrada de outro
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 13) = registos.ComboBox5 ' ESTADO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 14) = Format(registos.ComboBox3, "#") 'CODIGO DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 16) = registos.ComboBox6 'ORIGEM DEFEITO
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 17) = registos.TextBox5 'OBSERVAÇÕES
Application.ThisWorkbook.Worksheets("Registos").Cells(last + 2, 18) = registos.ComboBox7 'detalhe produção
GoTo fim
End If
If contador = 1 Then
MsgBox "Foi efetuado o registo de " & contador & " referência!", vbInformation
' Else
' MsgBox "Foi efetuado o registo de " & contador & " referências!", vbInformation
End If
contador = 0
GoTo fim:
fim:
End Sub
salto_1:
如果referencea=registos.TextBox1和registos.combox1=“SAÍDA”,则
工作表(“注册表”)。选择
ActiveSheet.ListObjects(“Tabela1”).Range.AutoFilter字段=8,Criteria1=_
registos.TextBox1.Text“过滤器参考”
ActiveSheet.ListObjects(“Tabela1”).Range.AutoFilter字段=6,Criteria1=_
registos.Label11.Caption'过滤器CC
ActiveSheet.ListObjects(“Tabela1”).Range.AutoFilter字段=12,Criteria1=_
“ENTRADA”过滤器ENTRADA
“佩雷斯·德恩塔达的数量
xty100=此工作簿。工作表(“计算器”)。范围(“A1”)
ActiveSheet.ListObjects(“Tabela1”).Range.AutoFilter字段=12,Criteria1=_
“SAÍDA”Filtrar SAíDA
“萨伊达佩亚斯酒店
xty101=此工作簿。工作表(“计算器”)。范围(“A1”)
sumfinal=xty100-xty101'计算库存
此工作簿.工作表(“calculos”).范围(“A20”)=格式(registos.TextBox4,“@”)
xtybx4=此工作簿。工作表(“计算器”)。范围(“A20”)
如果是xtybx4 0,则
GoTo salto_2
其他的
MsgBox“Não foi possível conclair o movimento!Stock”&sumfinal&“
转到fim
如果结束
如果结束
接下来我
salto_2:
如果registos.TextBox3=“”和registos.TextBox1”“和registos.TextBox2”“和registos.TextBox4”“和registos.combox5”“,则
Application.ThisWorkbook.Worksheets(“Registos”).Cells(last+1,1)=Now()'数据
Application.ThisWorkbook.Worksheets(“Registos”).Cells(最后+1,5)=Registos.Label20.Caption'
Application.ThisWorkbook.Worksheets(“Registos”).Cells(最后+1,6)=Registos.Label11.Caption'cc
Application.ThisWorkbook.Worksheets(“Registos”).Cells(last+1,7)=aLogiin.TextBox1'operario
Application.ThisWorkbook.Worksheets(“Registos”).Cells(最后+1,8)=Registos.TextBox1'参考格式A
Application.ThisWorkbook.Worksheets(“Registos”).Cells(最后+1,9)=Registos.TextBox2'ordem
Application.ThisWorkbook.Worksheets(“Registos”).Cells(last+1,11)=格式(Registos.TextBox4,“#”)量化数据
Application.ThisWorkbook.Worksheets(“Registos”).Cells(最后+1,12)=Registos.combox1'ENTRADA/SAIDA
Application.ThisWorkbook.Worksheets(“Registos”).Cells(最后+1,13)=Registos.combox5'ESTADO
Application.ThisWorkbook.Worksheets(“Registos”).Cells(last+1,14)=格式(Registos.ComboBox3,“#”)CODIGO DEFEITO
Application.ThisWorkbook.Worksheets(“Registos”).Cells(最后+1,16)=Registos.combox6'或gem DEFEITO
Application.ThisWorkbook.Worksheets(“Registos”).Cells(last+1,17)=Registos.TextBox5'观察值
MsgBox“Dados引见com成功!”
“转到fim
转到fim2
如果结束
MsgBox“Insira todos dados”
转到fim
fim2:如果registos.combox1“SAÍDA”,那么
转到fim
如果结束
如果registos.combox1=“SAÍDA”和registos.TextBox3=“”和registos.TextBox1”“和registos.TextBox2”“和registos.TextBox4”“和registos.ComboBox5”“和registos.ComboBox2”“,则
Application.ThisWorkbook.Worksheets(“Registos”).Cells(last+2,1)=Now()'数据
Application.ThisWorkbook.Worksheets(“Registos”).Cells(last+2,5)=Registos.Label20.Caption“ThisWorkbook.Worksheets(“anofiscal”).Range(“A1”)ano fiscal
Application.ThisWorkbook.Worksheets(“Registos”).Cells(最后+2,6)=Registos.combox2'cc
Application.ThisWorkbook.Worksheets(“Registos”).Cells(last+2,7)=aLogiin.TextBox1'操作
Application.ThisWorkbook.Worksheets(“Registos”).Cells(最后+2,8)=Registos.TextBox1'参考格式A
Application.ThisWorkbook.Worksheets(“注册表