выберите значение на основе диапазона значений в каждой строке Excel - PullRequest
0 голосов
/ 16 января 2020

Выбор на основе диапазона значений в каждой строке

Кому: переполнение стека

1) I w * sh для черновой обработки код, который позволяет выбирать значение на основе диапазона значений в каждой строке , как показано на рисунке.
Мой предварительный код ниже: -

Private SubWorksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.CountLarge <> 1 Then Exit Sub 
If Not Intersect(Target, Me.Range("F7,H7,J7")) Is Nothing Then Me.Range("C7").Value = Target.Value
End If
If Not Intersect(Target, Me.Range("F8, H8, J8")) Is Nothing Then Me.Range("C8").Value = Target.Value End If  
If Not Intersect(Target, Me.Range("F9, H9, J9, L9")) Is Nothing Then Me.Range("C9").Value = Target.Value
End If 
End Sub

2 ) Поскольку у меня более 100 строк выбора для ввода, указанный выше код будет утомительно многословным.
3) Я был бы признателен, если бы вы посоветовали мне, как улучшить и сделать его красивым. Большое спасибо.

Из L C Тан 2020-01-16

1 Ответ

0 голосов
/ 16 января 2020

Если я правильно понимаю, когда выбран столбец F, H или J, вы хотите, чтобы значение выбранной ячейки было скопировано в столбец C в той же строке.

Это можно сделать в Есть несколько способов, но вот простой пример, который проверяет, находится ли выбранный столбец в диапазоне от 6 до 15 (F и O, можно изменить), а затем проверяет, является ли значение в цели числом (счетчиком). Затем он копирует текущую ячейку в столбец C в той же строке, что и выбранная ячейка.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Cells.CountLarge <> 1 Then Exit Sub

If Target.Column < 6 Or Target.Column > 15 Then Exit Sub
If Not IsNumeric(Target) Then Range("C" & Target.Row).Value = Target.Value

End Sub

Существует несколько других способов сделать это, но это должно помочь вам в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...