#excel #vba #if-statement #userform
#excel #vba #if-оператор #пользовательская форма
Вопрос:
Для вас, экспертов, это, вероятно, просто. Я перепробовал так много способов и в стольких местах в коде, но ни один из них не работает для меня. Пожалуйста, помогите!
Все, что я пытаюсь сделать, это получить данные из ДИАПАЗОНА ЯЧЕЕК B4: B4000 для автоматического копирования в ДИАПАЗОН ЯЧЕЕК J4: J4000, если ДИАПАЗОН ЯЧЕЕК J4: J4000 будет пустым.
К вашему СВЕДЕНИЮ: Данные вводятся через пользовательскую форму.
Option Explicit
Private Sub CmdButton_CONTINUE1_Click()
Dim TargetRow As Integer
Dim FullName As String 'Variable for FULL NAME = CELL RANGE J4:J4000
Dim QBFileName As String 'Variable Quick Books File Name = CELL RANGE B4:B4000
Dim UserMessage As String
FullName = Txt_Client_First_Name amp; " " amp; Txt_Client_LAST_Name
QBFileName = Txt_QB_File_Name
'begin check if EDIT or ADD New Entry Mode
If Sheets("Engine").Range("B4").Value = "NEW" Then 'ADD New Entry Mode
'BEGINS VALIDATION CHECK: IF in "ADD New Entry Mode" mode to prevent duplicate FULL NAME J Column entries
If Application.WorksheetFunction.CountIf(Sheets("Database").Range("J3:J4000"), FullName) > 0 Then
MsgBox "Client's Full Name already exists", 0, "Check"
Exit Sub
End If 'ends validation check OF Duplicate FULLNAME (J Column)
'BEGINS VALIDATION CHECK: IF in "ADD New Entry Mode" to prevent duplicate QBFileName B Column entries
If Application.WorksheetFunction.CountIf(Sheets("Database").Range("B3:B4000"), QBFileName) > 0 Then
MsgBox "QuickBooks File Name already exists", 0, "Check"
Exit Sub
End If
~~~~
Комментарии:
1. Опубликовано: ozgrid.com/forum/forum/help-forums/excel-vba-macros /…
Ответ №1:
Private Sub CmdButton_CONTINUE1_Click()
Dim TargetRow As Integer
Dim FullName As String 'Variable for FULL NAME = CELL RANGE J4:J4000
Dim QBFileName As String 'Variable Quick Books File Name = CELL RANGE B4:B4000
Dim UserMessage As String
FullName = Txt_Client_First_Name amp; " " amp; Txt_Client_LAST_Name
QBFileName = Txt_QB_File_Name
'begin check if EDIT or ADD New Entry Mode
If Sheets("Engine").Range("B4").Value = "NEW" Then 'ADD New Entry Mode
'BEGINS VALIDATION CHECK: IF in "ADD New Entry Mode" mode to prevent duplicate FULL NAME J Column entries
If 1 UBound(Split(Application.Trim(Replace(Replace(Join(Application.Transpose(Range("J3:J4000")), Chr(1)), " ", Chr(2)), Chr(1), " ")))) > 0 Then
MsgBox "Client's Full Name already exists", 0, "Check"
Exit Sub
End If 'ends validation check OF Duplicate FULLNAME (J Column)
'BEGINS VALIDATION CHECK: IF in "ADD New Entry Mode" to prevent duplicate QBFileName B Column entries
If 1 UBound(Split(Application.Trim(Replace(Replace(Join(Application.Transpose(Range("B3:B4000")), Chr(1)), " ", Chr(2)), Chr(1), " ")))) > 0 Then
MsgBox "QuickBooks File Name already exists", 0, "Check"
Exit Sub
End If
End Sub
Комментарии:
1. Привет, Ронан, большое спасибо. Этот код оказался намного сложнее, чем я ожидал. Однако это не сработало. 🙁 Проблема: каждая новая запись говорит о существовании полного имени. Я скопировал ваш код и заменил им свою строку кода, но не тут-то было.
2. MUMPS в Ozgrid решил эту проблему! ozgrid.com/forum/forum/help-forums/excel-vba-macros/…
Ответ №2:
MUMPS в Ozgrid решил эту проблему!
ДА!!! СПАСИБО, СВИНКА!