Я делаю проект Excel Workbook для покер-рума. В программе есть база данных игроков. У каждого игрока есть номер ID
.
Ради моего вопроса я собираюсь обратиться к двум листам.
Когда игрок заходит в этот день, он регистрируется с Name
, * 1005. * и Time
(Этот лист Рабочие листы ("Выплата") ). Лист выплат
Затем, когда игрок покупает покерные фишки, они добавляются на другой лист ( Рабочие листы («Вкладка») ). Таблица вкладок Этот лист сохраняет отслеживание купленных фишек. Некоторые из этих игроков получают кредиты из дома, поэтому в итоге получают Tab
. На листе «Вкладка» есть кнопка cmd, которая называется Cashout.
Когда игрок заканчивает день, цель состоит в том, чтобы нажать кнопку вывода средств и отправить оставшиеся вкладки и время окончания игры на лист «Вывод средств». Поскольку на обоих этих листах указан номер игрока ID
, я думаю, что именно так я должен найти запись на странице вывода средств, но дайте мне знать, если есть более простой способ.
Он работает с использованием циклов do
и выбора ActiveCell, но кода много, а select
замедляет процесс. Я знаю, что есть лучший способ сделать это, возможно, Find
, Match
или даже For Each
l oop. Пожалуйста, дайте мне знать, чтобы изменить мой код.
Я прилагаю код, который работает, но я не хочу его использовать.
Private Sub CmdBtnCashout1_Click()
Dim LastRow As Long
Dim Rng1 As Range
Dim Rng2 As Range
Dim Rng3 As Range
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim cnt As Integer
Set ws1 = Worksheets("Tab")
Set ws2 = Worksheets("Cashout")
Set Rng1 = Worksheets("Tab").Range("A5")
Set Rng2 = Worksheets("Tab").Range("C4")
Set Rng3 = Worksheets("Tab").Range("W5")
cnt = 1
Application.ScreenUpdating = False
Rng1.Select
Selection.Copy
ws2.Activate
ws2.Range("A4").Select
If ws2.Range("A4") = "" Then
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ws1.Activate
Rng2.Select
Application.CutCopyMode = False
Selection.Copy
ws2.Activate
ActiveCell.Offset(0, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ws1.Activate
Rng3.Select
Application.CutCopyMode = False
Selection.Copy
ws2.Activate
ActiveCell.Offset(0, 3).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ws2.Range("A1").Select
ws1.Activate
ws1.Range("A1").Select
Application.CutCopyMode = False
Range("A1").Select
Else
Do Until ActiveCell.value = ""
ActiveCell.Offset(1, 0).Select
cnt = cnt + 1
If cnt > 49 Then Exit Do
Loop
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ws1.Activate
Rng2.Select
Application.CutCopyMode = False
Selection.Copy
ws2.Activate
ActiveCell.Offset(0, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ws1.Activate
Rng3.Select
Application.CutCopyMode = False
Selection.Copy
ws2.Activate
ActiveCell.Offset(0, 3).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ws2.Range("A1").Select
ws1.Activate
ws1.Range("A1").Select
Application.CutCopyMode = False
Range("A1").Select
End If
Application.ScreenUpdating = True
End Sub
Таблица вкладок : с кнопкой вывода средств: имя игрока находится в ячейке A5, идентификационный номер - в A4, баланс вкладок - в W5.
Таблица выплат : имя игрока находится в диапазоне A4: A53, а номер идентификатора игрока находится в диапазоне B4: B53 - это то место, где мне нужно будет соответствовать моя ссылка затем вставить баланс вкладки из листа вкладок в диапазоне G4: G53 в строке с этим игроком. Я также хочу просто вставить отметку времени в E4: E53.
Подпункт будет подпрограммой уровня рабочего листа на вкладке с использованием события CashoutCommandBtn Click
Как мне это сделать?