Excel: как проверить несколько TextBoxes в Userform1 для значения, а затем передать только значение

Да, этого можно ожидать время от времени. В то время как new резервирует место для данных, delete просто делает недействительным указатель, созданный с помощью new, позволяя записывать данные в ранее зарезервированных местах; он не обязательно удаляет данные. Однако вы не должны полагаться на это поведение, поскольку данные в этих местах могут меняться в любое время, что может привести к неправильной работе вашей программы. Вот почему после использования delete указателя (или delete[] в массиве, выделенном с помощью new[]), вы должны назначить ему NULL, чтобы вы не могли вмешиваться в неправильный указатель, если вы не будете выделите память с помощью new или new[] перед повторным использованием этого указателя.

0
задан John B Ward 13 July 2018 в 21:35
поделиться

1 ответ

Есть несколько способов достижения вашей цели, но вот тот, который не требует, чтобы я задавал какие-либо вопросы.

Private Sub CommandButton2_Click()

If Me.TextBox1.Text <> "" Then
    Sheets("Sheet1").Range("A1").Value = Me.TextBox1.Text
End If

End Sub

В основном, в приведенном выше тестовом коде, когда CommandButton2 , VBA проверяет, TextBox1 на UserForm1 (который я назвал Me, поскольку мой код написан в модуле UserForm) не равен "" (пустая строка).

Другими словами, он проверяет, содержит ли TextBox хотя бы один символ или нет. Если он содержит хотя бы один символ, он записывает TextBox1.Text в ячейку A1 на листе Sheet1. Если TextBox пуст, ничего не происходит.

Вы можете повторить этот оператор If для каждого TextBox, который у вас есть на вашем UserForm (не забудьте обновить любые ссылки на управление и листы для каждого оператора If!) [/ ​​g3 ]

0
ответ дан Samuel Everson 17 August 2018 в 12:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: