Таким образом, я работал над попыткой автоматизации некоторых функций в электронной таблице, и по большей части написанные мной коды VBA ведут себя так, как задумано. Но тот, который сводит меня с ума, это тот, кто автоматически заполняет имя пользователя приложения. Так что я запускаю его как Sub, так как у меня работает несколько разных функций, вот код:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A4:A198")) Is Nothing Then
Call AutoName
End If
End Sub
Sub AutoName()
Dim myCells As Range
Set myCells = Selection
If myCells = (myCells.Value) Then
With myCells(1, 6)
.Value = Application.UserName
.EntireColumn.AutoFit
End With
With myCells(1, 5)
.Value = Date
End With
Else
With myCells(1, 6)
.Value = Null
End With
With myCells
.Value = Null
End With
End If
End Sub
Когда я ввожу информацию в первую ячейку, она автоматически вводит дату и имя пользователя в правильныеячеек, как это должно быть, но тогда проблема в два раза, во-первых, когда я удаляю вход в первой ячейке, это происходит.
Имя пользователя остается в ТМстолбец, а затем заполняет в столбце даты, а затем дата заполняет в столбце дела! Я попытался добавить .ClearContents, Range.Delete, но это все равно происходит независимо. Я в конце остроумие с этим. Это не конец света, он по большей части функционирует так, как задумано, просто раздражает. Вторичная проблема, которая, опять же, просто раздражает, состоит в том, что, если я нажму «удалить», когда в этой первой ячейке будет автоматически заполнено имя в ячейке «Дата» и дата в ячейке регистра. Опять не конец света, просто раздражает. Любая помощь будет оценена, где я иду не так. В случае, если это не было очевидно, я новичок в VBA