我只需要宏来查看我在Excel工作表中的命令列表。
基本上我有一个访问宏,我需要重复每个字段我必须应用它。 我希望制作一个excel宏来为我的访问项目制作宏,并节省很多自己的输入。
我需要这个命令来替换我所拥有的" 0"和" 9" 单元格B2将转到所有" 0"&B3将转到所有" 9"' s 那么我会在后面的C2和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代码我计划更换关键字是这个模板:
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多个字段来制作代码。
答案 0 :(得分:2)
您没有准确指定哪行代码导致您获得的错误(如果您很难识别它,请查看“VBA错误处理”),但我相信这个:
.clearformating
是个问题。如果它的类型与您的代码中的类型完全相同,那么当Microsoft命名为“clear formatting”方法时,或者您调用的方法不存在时,Microsoft会输入错字。
此外,整个搜索取决于Selection
实际上是什么 - 可能没有达到您所期望的那样,您期望它。
要做的第一件事就是找出确切的指令。当VBA调试对话框出现时,单击[Debug]按钮,非法指令应以亮黄色突出显示。
答案 1 :(得分:1)
好的JC,这应该让你去。
这个例子的假设是:
..您要更改的数据列在名为“数据”的工作表中
..替换关键字存储在名为“Sheet1”
的工作表中..数据关键字(“0”和“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
方法的数据here