A family of Microsoft spreadsheet software with tools for analyzing, charting, and communicating data.
I have found the answer myself, after some effort:
I didn't quite supply sufficient information in my original posting. The missing information was that the dropdown lists associated with the PRE and POST values weren't the same. To set custom lists for each of these values, I was using the INDIRECT function. And it apparently was the presence of this function in the validation's list formula that was causing the problem, even though I was disabling the list.
To work around this, I had to set the validation formula at runtime. And as it turned out, the corresponding property -- formula1 -- is read-only; it can only be set by the validation.add method. So my event handler became:
Const PrePost_Column As Integer = 8
If Target.Column = PrePost_Column Then
Dim Next_Cell As Range: Set Next_Cell = Target.Offset(columnoffset:=1)
With Next_Cell.Validation
If (UCase(Target.Value) = "OTHER") Then
.Delete
Else
On Error GoTo Error_Handler
.Add Type:=xlValidateList, Formula1:="=INDIRECT (" & ActiveCell.Address & ")"
End If
End With
End If
The Error_Handler would "Resume Next" if the .Add generated error 1004 (on the assumption that the validation object already existed).