2015-06-12 4 views
-1

Я хочу, чтобы он мог поместить значение 1 в ячейку excel, когда он выбран. Ячейки, которые не выбраны, остаются пустыми.Как вставить 1 автоматически в ячейку excel?

+1

Посмотрите на события изменений и разместите то, что вы сделали до сих пор – Tom

+0

Спасибо Том, я действительно новичок в vba/excel и имею таблицу, в которой есть элементы запаса в столбце a, и мы вводим столбцы 1 в столбце b, если у нас есть запас, но требуется возраст, если я вхожу в 1 с помощью сенсорной клавиатуры, поэтому хотел бы просто щелкнуть соответствующую ячейку в столбце b, и она была заполнена 1. –

ответ

0

ActiveCell будет использовать текущую ячейку, выбранную тогда, как вы можете видеть, она присваивает значение 1 этой ячейке.

ActiveCell.value = 1 

Если вы хотели бы быть более модульным, если это возможно, происходит много раз, а затем рассмотреть возможность взглянуть на события изменения here, как это было предложено @tom

0

Я действительно не рекомендую делая это, особенно если это для мониторинга вашего запаса, и поэтому за это время, и на этот раз только я написал его, чтобы сделать его более безопасным, если вы действительно это сделаете, НО Я НЕ РЕКОМЕНДУЕТ ЭТО.

вы будете нуждаться, чтобы вставить это в модуль листа, что он относится к

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 
    If Target.Columns.Count = 1 And Target.Rows.Count = 1 And Target.Column = 2 Then 
     Target.Value = 1 
    End If 
End Sub 

Чтобы получить к модулю рабочего листа вам нужно перейти в редактор VBA (Shortcut Alt + F11 на окнах) и вставить в нужном модуле рабочего листа (Примечание выделено лист)

enter image description here

Я предупреждаю вас, хотя это может очень быстро привести к вашему уровню запаса неточным, так как это будет работать при нажатии на ячейке или переместить вокруг горе rksheet с помощью клавиш со стрелками. Это может испортить всю вашу систему и не будет отменено (vba вытирает память отмены)

Что было бы гораздо лучше сделать, это фактически контролировать ваши точные уровни запасов в excel, а затем использовать формулу, например (скажем, вы сохраните свой уровень запасов в колонке c)

=IF(C1>0, B1=1, B1=0) 

Это автоматически автоматически точно отражает, было ли это на складе или нет.

+0

Спасибо Том, как я могу указать если я хотел добавить больше столбцов, которые автоматически получают 1 вставленный. Кроме того, я знаю, что это немного дерзко, так или иначе, я могу изменить 1 на галочку и как бы получить количество количества тиков в определенной строке. Итак, скажем, столбец1 был элементом, тогда у меня было несколько столбцов 1 или Ticks, а затем одиннадцатый столбец для добавления строк вверх. Могу ли я применить его к определенному диапазону ячеек, скажем, 24 строки по 32 столбцам, тогда столбец 33 будет общим для каждой строки. Спасибо Michael –

+0

Вам нужно будет изменить условие 'If', чтобы оно было' ... Или Target.Column = xx'. Вы открываете больше ловушек для себя, делая это так. Вы можете использовать форматирование в excel и wingdings, чтобы заменить все «1» в диапазоне для тиков. Используйте пользовательское форматирование '[= 1]" ü ";" û "' и измените шрифт на wingdings в диапазоне – Tom

+0

. Спасибо, что Том действительно использовал его на другой таблице, которую мы используем для принятия заказов. В любом случае, я могу указать ячейки, к которым он применяется, а не всю электронную таблицу? –