Итак, я создал лист с текстовыми полями и кнопкой. цель состоит в том, чтобы ввести информацию в соответствующие текстовые поля, и они заполняют базу данных, которая находится на другом листе. Мне удалось создать код, который работает, но есть небольшая проблема. каждый раз, когда я нажимаю кнопку, это заставляет экран мерцать, пока он копирует данные. Он работает, но мне интересно, может ли кто-нибудь увидеть способ остановить мерцание экрана. Я думаю, что это происходит, когда данные копируются из каждого текстового поля. Одно текстовое поле для одного мерцания или что-то подобное. Пытался написать цикл, но не мог понять, как получить различные текстовые поля, которые нужно перебрать.Таблица Excel для ввода данных в другую базу данных листов
Код, используемый ниже:
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = Sheets("database")
ActiveWorkbook.Sheets("database").Activate
ws.Range("A1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = TextBox1.Value
ActiveWorkbook.Sheets("database").Activate
ws.Range("B1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = TextBox2.Value
ActiveWorkbook.Sheets("database").Activate
ws.Range("C1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = TextBox3.Value
ActiveWorkbook.Sheets("database").Activate
ws.Range("D1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = TextBox4.Value
ActiveWorkbook.Sheets("database").Activate
ws.Range("E1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = TextBox5.Value
ActiveWorkbook.Sheets("database").Activate
ws.Range("F1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = TextBox6.Value
ActiveWorkbook.Sheets("database").Activate
ws.Range("G1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = TextBox7.Value
End Sub
Используйте 'Application.ScreenUpdating = false' в начале вашего подразделам, а затем' Application.ScreenUpdating = true' на конец. – Mrig