Vba 使用excel程序返回特定值
我有一个电子表格,将用于调查 我如何使单元格仅返回“x”,而不管调查人员键入什么 例如,如果我在单元格中写一个“w”,它应该变成一个“x” 当我保护工作簿或工作表时,我认为有一个选择。因为我可以从另一个电子表格(具有此功能)中看出,它只有在工作簿受到保护的情况下才能工作 我试着用谷歌搜索,但似乎我不知道找到答案的正确关键词 此外,我还发现了一组我处理过的Vba代码,但我不确定这是否正确。我不想附加代码,因为我不想混淆这里的任何响应Vba 使用excel程序返回特定值,vba,excel,Vba,Excel,我有一个电子表格,将用于调查 我如何使单元格仅返回“x”,而不管调查人员键入什么 例如,如果我在单元格中写一个“w”,它应该变成一个“x” 当我保护工作簿或工作表时,我认为有一个选择。因为我可以从另一个电子表格(具有此功能)中看出,它只有在工作簿受到保护的情况下才能工作 我试着用谷歌搜索,但似乎我不知道找到答案的正确关键词 此外,我还发现了一组我处理过的Vba代码,但我不确定这是否正确。我不想附加代码,因为我不想混淆这里的任何响应 感谢您提供的帮助。将此代码放入工作表模块并进行测试,当您更改a(
感谢您提供的帮助。将此代码放入工作表模块并进行测试,当您更改a(1)列中的单元格时,它将激活 工作表模块在哪里 复制并粘贴代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("A1,B1,C1,A4,B4,C4")) Is Nothing Then Exit Sub
Application.EnableEvents = 0
If Target <> "" Then Target = "X"
Application.EnableEvents = 1
End Sub
Private子工作表\u更改(ByVal目标作为范围)
如果Target.Count>1,则退出Sub
如果Intersect(目标、范围(“A1、B1、C1、A4、B4、C4”)为空,则退出Sub
Application.EnableEvents=0
如果目标为“”,则目标为=“X”
Application.EnableEvents=1
端接头
这应该适合您(只需将范围更改为您需要的范围):
哦,是的,这段代码应该放在工作表模块中-就像Dave向你展示的那样不完全是你想要的,但这听起来像是一份工作。这正是我想要的。问题,我应该如何将此代码用于特定单元格?现在它自动适用于一个列。我知道了如何在这里更改列:
如果Target.column=1,那么
但是似乎我无法选择设置特定的单元格。如果不是Application.Intersect(Target,Me.Range(“A1,A3,B3,B5,C1,C6”))然后
此字符串有一个错误91:对象变量或块变量未设置,我将尝试调试它。效果非常好!万分感谢!如果你不介意的话,我会把这个话题发给我的一些同事,这样他们也可以使用这个代码。非常感谢!除了Dave的,我还将使用这段代码。我有一个非常大的电子表格,它们都会派上用场Set LR=Range(“A1:b3”)
LR变量未定义,很遗憾,它返回了一个错误。@RobinWimanDim LR,单元格为Range
-此行声明了变量。里面多了一个逗号,很抱歉。
Option Explicit
Sub worksheet_Change(ByVal Target As Range)
On Error GoTo errorbutler 'error handler - important to have this in case your macro does a booboo
Application.Calculation = xlCalculationManual 'turn off automatic calculation to speed up the macro
Application.EnableEvents = False 'turn off events in order to prevent an endless loop
Dim LR, cell As Range 'Declare your variables
Set LR = Range("A1:b3") ' Select range of cells this macro would apply to
For Each cell In Target 'Loops through the cells that user have changed
If Union(cell, LR).Address = LR.Address Then 'Checks if the changed cell is part of your range
cell.Value="x" 'changes the value of that cell to x
End if
Next cell
Errorexit: 'part of error handling procedure
Application.EnableEvents = True 'Turn autocalc back on
Application.Calculation = xlCalculationAutomatic 'turn events back on
Exit Sub
Errorbutler: 'error handling procedure
Debug.Print Err.Number & vbNewLine & Err.Description
Resume Errorexit
End Sub