有没有办法使用查找功能与Excel宏改变,用户输入的值的方法吗?(Is there a way to

2019-10-18 09:56发布

我所试图做的是有一个表,其中用户键入的文本到小区的用户输入字段。 然后,他们可以运行其选择不同的表,然后使用在查找功能是输入的文本的宏。

一旦文本被发现,要选择该文本中找到需要的整个列中,用所有的细胞一起向右直到下一个填充单元(该行中的“发现”词/短语所在的位置)。 然后,这些细胞将被删除。

我有两个主要问题。 我似乎无法找到如何使用Find功能与变化值(我说的价值,但我的意思是什么单词,短语等放入用户输入的字段)。 我可以只搜索特定的价值,不能引用用户输入字段来代替。

第二个问题是选择列-一旦Find函数查找用户输入值/字/短语,它选择该小区它是在我想它选择整列(和列的它向右在一个特定的行的下一个人口稠密细胞)。

这是因为我似乎无法引用,其中用户输入的值/字短语被发现,因为它会不断改变列类似的问题。 我只能够选择某列,问题是它选择可能不需要运行该宏作为纸张它是在不断更新查找值下一次要删除的列。

这里是我到目前为止的代码。

Sub Macro3()
    Sheets("Instructions").Select
    Range("C53").Select
    Selection.Copy
    Sheets("Forecast").Select
    Cells.Find(What:="4150T83G01", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    Columns("BW:BY").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
End Sub

所以基本上,范围C53永远不会改变。 我总是想,要成为在用户输入要查找的词/短语/值。

其中代码表示Cells.Find(What:="4150T83G01" -我需要这不是指特定的值,而是指用户输入的词/短语/值对"Instructions"片,电池C53。

最后,其中的代码表示Columns("BW:BY").Select -我需要这是指用户在其中输入的词/短语/值的列被发现,以及该列所找到的小区权直到下一次填充单元,而不是特定的列BW:BY

我希望是有道理的,任何帮助是极大的赞赏! 谢谢!

Answer 1:

看来,你和一个录制的宏尝试? 做这类事情,你需要的不仅仅是录制宏的更多。

Sub Macro3()
Dim strFind As String
Dim rngFind As Range
Dim i As Integer

strFind = Sheets("Sheet2").Range("C3").Value
Set rngFind = Sheets("Sheet1").Cells.Find(What:=strFind, LookAt:=xlPart)
'check if value is found
If Not rngFind Is Nothing Then
    i = 0
    Do While rngFind.Offset(0, i + 1) = ""
        i = i + 1
    Loop
    rngFind.Resize(1, i + 1).EntireColumn.delete Shift:=xlShiftToLeft
End If

结束小组



文章来源: Is there a way to use the find function with changing, user inputted values in an excel macro?