Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 用于填充范围内的值的子例程?_Vba_Excel_Excel 2010 - Fatal编程技术网

Vba 用于填充范围内的值的子例程?

Vba 用于填充范围内的值的子例程?,vba,excel,excel-2010,Vba,Excel,Excel 2010,我一直在尝试编写一个子程序来查找行中某个值的第一个和最后一个实例,并用相同的值填充中间。然而,我上班有困难。我认为问题在于我的range.find方法查找最后一个实例。有人能帮我找出错误吗 Sub ChangeBetween() Dim FirstCell As Range Dim LastCell As Range Dim SearchTerm As String Dim ChangeRange As Range Dim ChangeCell As Ra

我一直在尝试编写一个子程序来查找行中某个值的第一个和最后一个实例,并用相同的值填充中间。然而,我上班有困难。我认为问题在于我的range.find方法查找最后一个实例。有人能帮我找出错误吗

Sub ChangeBetween()
    Dim FirstCell As Range
    Dim LastCell As Range
    Dim SearchTerm As String
    Dim ChangeRange As Range
    Dim ChangeCell As Range

    'Define search term
    SearchTerm = Range("A1").Value

    'Find beginning and end of replacement range
    Set FirstCell = Range("B2:I2").Find( _
        What:=SearchTerm, _
        LookIn:=xlValues, _
        LookAt:=xlWhole, _
        SearchOrder:=xlByColumns, _
        SearchDirection:=xlNext)
    Set LastCell = Range("B2:I2").Find( _
        What:=SeartTerm, _
        LookIn:=xlValues, _
        LookAt:=xlWhole, _
        SearchOrder:=xlByColumns, _
        SearchDirection:=xlPrevious)

    'Set replacement range
    Set ChangeRange = Range(FirstCell, LastCell)

    'Replace in range
    For Each ChangeCell In ChangeRange
        ChangeCell.Value = SearchTerm
    Next ChangeCell
End Sub
引用你的话

Set LastCell = Range("B2:I2").Find( _
    What:=SeartTerm, _ 'this is a typo your variable is SearchTerm
    LookIn:=xlValues, _
    LookAt:=xlWhole, _
    SearchOrder:=xlByColumns, _
    SearchDirection:=xlPrevious)
如果可以,为什么要从最后一个和第一个循环遍历每个单元格

'Replace in range
For Each ChangeCell In ChangeRange
    ChangeCell.Value = SearchTerm
Next ChangeCell
尝试:

引用你的话

Set LastCell = Range("B2:I2").Find( _
    What:=SeartTerm, _ 'this is a typo your variable is SearchTerm
    LookIn:=xlValues, _
    LookAt:=xlWhole, _
    SearchOrder:=xlByColumns, _
    SearchDirection:=xlPrevious)
如果可以,为什么要从最后一个和第一个循环遍历每个单元格

'Replace in range
For Each ChangeCell In ChangeRange
    ChangeCell.Value = SearchTerm
Next ChangeCell
尝试:

通过指定的After:=参数,我发现了几个(我认为是)逻辑漏洞


设置需要在VBE的工具中声明变量► 选择权► 编辑器属性页将把语句放在每个新创建的代码表的顶部。这 将避免愚蠢的编码错误,如拼写错误,以及影响您在变量中使用正确的变量类型 公告在没有声明的情况下动态创建的变量都是变量/对象类型。使用选项显式是 被广泛认为是“最佳实践”。

通过指定的After:=参数,我发现了几个(我认为是)逻辑漏洞


设置需要在VBE的工具中声明变量► 选择权► 编辑器属性页将把语句放在每个新创建的代码表的顶部。这 将避免愚蠢的编码错误,如拼写错误,以及影响您在变量中使用正确的变量类型 公告在没有声明的情况下动态创建的变量都是变量/对象类型。使用选项显式
被广泛认为是“最佳实践”。

什么是
searterm
Option Explicit
是你最好的朋友。什么是
searterm
Option Explicit
是你最好的朋友。