Pergunta : Excel/VBA/Userform

Eu tenho um userform que os dados sejam entrados e a informação seja redigida às pilhas na folha 1. Os seguintes campos são informação capturada, data, curso, duração, instrutor, identificação, nome, apelido, status. Esta parte toda trabalha o problema que de fine.

The eu tenho sou com a uma seção pequena chamada tipo de desenvolvimento. Eu preciso o tipo de desenvolvimento de ser incorporado se selecionado e escrevo-o para cobrir 1 “material novo”, “material existente”, “outro”, dependendo da tecla de opção escolhida sem a exigência do empregado detalho a seção que está sendo completada.

no momento em que esta parte trabalha somente se a seção dos detalhes do empregado está completada igualmente. Eu não posso consegui-la a trabalhar de outra maneira, mas afixei meu código. Alguém ajudou-me com este e eu adicionei essa peça dentro assim que eu sou certo que eu não a fiz que correctly.

Here é meu código e destacado em bold(realce) é onde o problema é o
RowCount não ofuscante do cmdOk_Click de I think.

Private () como o ctl não ofuscante de Long
como o ctlName não ofuscante de Control
como o ctlNumber não ofuscante de String
como o ctlField não ofuscante de String
porque o input
do usuário da verificação do
' de String
se Me.txt Date.Value = "" Then
MsgBox “incorpora por favor uma data. ”, vbExclamation, “registro do " extremidade If
do treinamento de Sub
da saída
Me.txt Date.SetFocus
se Me.cboCourseName.Value = o "" Then
MsgBox “dão entrada com por favor o nome do curso. ”, vbExclamation, “registro do " extremidade If
do treinamento de Sub
da saída
Me.txt Date.SetFocus
se Me.txt Duration.Value = "" Then
MsgBox “incorpora por favor a duração às horas. ”, vbExclamation, “registro do " extremidade If
do treinamento de Sub
da saída
Me.txt Date.SetFocus
se Me.cboTrainer.Value = o "" Then
MsgBox “escolhem por favor o centro de custo. ”, o vbExclamation, “registro do " extremidade If
se não IsNumeric do treinamento de Sub
da saída
Me.txt Date.SetFocus
(Me.txtDuration.Value) Then
MsgBox “a duração deve ser um número. ”, o vbExclamation, “registro do " extremidade If
se não IsDate do treinamento de Sub
da saída
Me.txt Date.SetFocus
(Me.txtDate.Value) Then
MsgBox “a caixa da data deve conter uma data. ”, o vbExclamation, “registro do " extremidade If

' do treinamento de Sub
da saída
Me.txt Date.SetFocus
redige dados ao worksheet
“começ o row
RowCount = folhas (“Sheet1”). Range (“A1”). O
de CurrentRegion.Rows.Count
” começ os detalhes para cada linha com dados (não espaço em branco) em um array
“escreve então todos os campos à linha seguinte using o
do
do “rowCount " para cada ctl no ctlName do
de Me.Controls
= saiu (ctl. O nome, 12)” começ o
do name
do campo se ctlName = “txtFirstName” Then
se ctl. O <> do valor que vbNullString o ctlNumber do
de Then
= substitui (ctl. O nome, o “txtFirstName”, o "") “começ o
do number
do campo” escrevem fields
com folhas (“Sheet1”). () Details
instrutor do
Range do “. Offset (RowCount, 0).
do valor = do DateValue (Me.txtDate.Value). Offset (RowCount, 1). Valor = Me.cboCourseName.Value
. Offset (RowCount, 2). Valor = Me.txt Duration.Value
. Offset (RowCount, 3). Details
desenvolvimento do do
do valor = do Me.cboTrainer.Value
do” se FirstOptBtn = Then
. Offset (RowCount, 9). Valor =
ElseIf SecondOptBtn = Then
. Offset (RowCount, 9). Valor =
ElseIf ThirdOptBtn = Then
. Offset (RowCount, 9). Valor = o “outro " entered
da data do
Else
“nothing
/>”. Offset (RowCount, 10). Valor = formato (agora, de “hh dd/mm/yyyy: nn: o
da extremidade With

do
dos ss”) “elabora o número de campo atual e escreve o descanso do ctlField do line
dos dados = “txtEmployeeID” & apara as folhas do
(do ctlNumber) (“Sheet1”). Range (“A1”). Offset (RowCount, 4). Valor = Me.Controls (ctlField). ctlField de Value
= “txtFirstName” & de
da guarnição (ctlNumber) folhas (“Sheet1”). Range (“A1”). Offset (RowCount, 5). Valor = Me.Controls (ctlField). ctlField de Value
= “txtLastName” & de
da guarnição (ctlNumber) folhas (“Sheet1”). Range (“A1”). Offset (RowCount, 6). Valor = Me.Controls (ctlField). ctlField de Value
= “cboStatus” & de
da guarnição (ctlNumber) folhas (“Sheet1”). Range (“A1”). Offset (RowCount, 7). Valor = Me.Controls (ctlField). ctlField de Value
= “cboDepartment” & de
da guarnição (ctlNumber) folhas (“Sheet1”). Range (“A1”). Offset (RowCount, 8). Valor = Me.Controls (ctlField). Value
do” para cada clear_form
MsgBox “atualização do ctl
Call do
de If
do fim de If
do fim do line
RowCount dos dados do empregado = do
de RowCount + de 1
terminou”, vbInformation + vbOKOnly,
End Sub

also que dá laços na data, curso, duração, instrutor, de acordo com o número de empregados inscritos na seção do detalhe do empregado. esta parte trabalha muito bem enquanto stated.
Hope isto faz o sentido e toda a ajuda começ o tipo de desenvolvimento funcionamento de detalhes seria grande!
Cheers
 
class= do

Resposta : Excel/VBA/Userform

Eu sou pesaroso, no momento em que nós temos a insuficiente informação para eliminar erros inteiramente de seu código, e não é desobstruído exatamente o que você está fazendo.

Eu não compreendi seu comentário penúltimo inteiramente, mas os procedimentos (submarinos ou funções) geralmente ainda trabalharão quando colados entre os módulos do código. Os blocos de código dentro dos procedimentos precisariam mais cuidado.

Com referência a seu último comentário: Se você sente que sua pergunta original estêve respondida, a seguir seria o melhor fechar a pergunta e levantar um novo. Se não, pode você esclarecer a posição neste momento?



Outras soluções  
 
programming4us programming4us