有没有办法使用查找function改变,在Excelmacros中的用户input值?

我想要做的是在一张纸上有一个用户input字段,用户在其中input文本到一个单元格中。 然后,他们可以运行一个macros来select不同的表格,然后在查找function中使用该input的文本。

一旦find文本,需要selectfind文本的整个列以及所有单元格直到下一个填充的单元格(在“find”的单词/短语所在的行中)。 这些单元格将被删除。

我有两个主要问题。 我似乎无法find如何使用具有变化值的Findfunction(我说的价值,但我的意思是任何单词,短语等被放入用户input字段)。 我只能search一个特定的值,而不能引用用户input的字段。

第二个问题是select列 – 一旦Find函数find用户input的值/单词/短语,它select它所在的单元格。我希望它select整个列(及其右边的列直到下一个填充的单元格在特定行中)。

这是一个类似的问题,因为我似乎无法参考find用户input的值/单词的列,因为它会不断变化。 我只能够select某个列,问题是它select的列可能不需要被删除下一次macros运行的表单,它发现值不断更新。

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

 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将永远不会改变。 我总是希望这是用户input要find的单词/短语/值的地方。

在代码中说Cells.Find(What:="4150T83G01" – 我不需要引用那个特定的值,而是在单元格C53的"Instructions"表单中引用用户input的词/短语/值。

最后,在代码中显示的Columns("BW:BY").Select – 我需要这个来查找用户input的词/短语/值的列以及find的单元格右边的列直到下一个填充的单元格,而不是特定的列BW:BY

我希望这是有道理的,任何帮助,非常感谢! 谢谢!

看来你正在尝试一个录制的macros? 要做这些事情,你需要的不仅仅是录制macros。

 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 

结束小组