我只需要宏就可以进入excel工作表中的命令列表。
基本上,我有一个在访问中制作的宏,我需要在每个字段中重复,我必须将其应用到它。我希望制作一个excel宏,为我的访问项目制作宏,并节省大量的打字时间。
我需要这个命令来替换我的关键字"0"one_answers"9"单元格B2将转到所有"0",而B3将转到所有的"9"那么我将在下面的列C2&C3、D2&D3等但现在我已经把它放在B栏了。
然而,无论我做什么,我都会得到一个"运行时‘450’:参数数量错误或属性分配无效"的错误。
Sub replace()
selection.find.clearformating
selection.find.Replacement.clearformating
With selection.find
.Text = "0"
.Replacement.Text = Worksheets("Sheet1").Range("B2")
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute
End With
selection.find.Execute replace:=wdReplaceAll
End Sub
这就是我现在所拥有的。
我的vba代码在访问im计划替换中的关键字是这个模板:
Private Sub Form_Current()
DoEvents
If Me!0 = "-1" Then
Me!9.Visible = True
Else
Me!9.Visible = False
End If
End Sub
Private Sub 0_Click()
DoEvents
If Me!0 = "-1" Then
Me!9.Visible = True
Else
Me!9.Visible = False
End If
End Sub
所以让我知道,如果你有任何想法来修复excel宏,并节省我很多打字。我有大约300多个字段可以用来编写代码。
您没有准确指定导致错误的代码行(如果您很难识别,请查看"VBA错误处理"),但我相信这一点:
.clearformating
是个问题。如果在你的代码中键入的与此完全相同,要么是微软在命名"清除格式"方法时拼写错误,要么是你调用了一个不存在的方法。
此外,整个搜索取决于Selection
的实际内容——它可能没有达到你的预期,也没有达到你预期的位置
要做的第一件事就是弄清楚到底是什么指令爆炸了。当VBA调试对话框出现时,单击[debug]按钮,非法指令应以亮黄色突出显示。
好吧,JC,这应该会让你开始。
这个例子的假设是:
您正在更改的数据列在名为"数据"的表格中
替换关键字存储在名为"Sheet1"的表格中
数据关键字("0"one_answers"9")作为文本值存储在工作表数据中-您需要处理多位数的"数字",即"0"将被替换为"0"、"10"、"100"等。
根据您的Q,列号表示要替换的数据的列AND和存储该列的替换值的列
不能保证这将在Access VBA中运行,但您应该了解一种方法。
'This is the calling sub to iterate through your data
Sub callsub()
Dim startcol As Long, endcol As Long, c As Long
startcol = 2 'col B
endcol = 4 'col D
For c = startcol To endcol
Call replace(c) 'replace keywords in Col no c
Next c
End Sub
'This Sub will replace two keyword values per call in the column (number) passed to it
Sub replace(col)
With Sheets("Data")
repstr0 = Worksheets("Sheet1").Cells(2, col)
.Columns(col).replace What:="0", Replacement:=repstr0, SearchOrder:=xlByColumns, MatchCase:=True
repstr9 = Worksheets("Sheet1").Cells(3, col)
.Columns(col).replace What:="9", Replacement:=repstr9, SearchOrder:=xlByColumns, MatchCase:=True
End With
End Sub
关于使用Range.Replace
方法的数据可以在此处找到