【问题标题】:VBA Sub to locate a cell based on Top row and First ColumnVBA Sub根据顶行和第一列定位单元格
【发布时间】:2015-09-09 16:28:06
【问题描述】:

我的第一行是州名,例如 VA CA,第一列包含行业代码。需要一个 VBA 子程序,在我单击这个名为 Locate 的按钮后,一个 msgbox 要求用户输入州名称,第二个 msgbox 要求用户输入行业代码,vba 找到该州和行业所在的列和行,定位值基于这两个坐标输入。

Sub Locate()
Dim siccode As Integer
Dim rngSearch As Range, rngFound, rngFound2 As Range
Dim r As Double
Dim c As Double
Dim states, cellvalue As String

siccode = InputBox(Prompt:="Please enter 2 digit SIC code: ", Title:="SIC   Code", Default:="SIC here")
states = InputBox(Prompt:="Please enter State name: ", Title:="State Name", Default:="State Name here")

Set rngSearch = Range("A:BB")
Set rngFound = rngSearch.Find(What:="siccode", LookIn:=xlValues, LookAt:=xlPart)
 If rngFound Is Nothing Then
 MsgBox "No claims at all"
 Else
 MsgBox rngFound.Row
 End If

Set rngSearch = Range("A:BB")
Set rngFound2 = rngSearch.Find(What:="states", LookIn:=xlValues, LookAt:=xlPart)
If rngFound2 Is Nothing Then
 MsgBox "No Claims at all"
 Else
 MsgBox rngFound2.Column
 End If

cellvalue = ActiveSheet.Cells(rngFound.Row, rngFound2.Column).value
MsgBox (cellvalue)
End Sub

在 if 部分之前它都可以正常工作,无论它是什么输入,它总是根本不显示任何声明。

【问题讨论】:

  • 您需要一个可以做某事的子,但您是否尝试过自己做这件事?你的代码在哪里?你被困在哪里了?它做什么或不做什么?
  • 这不是免费的编码服务,请展示您的研究成果。

标签: vba excel


【解决方案1】:

在您的搜索行中,为什么 siccode 在引号中?它是一个整数变量,而不是一个字符串。状态也一样,这是一个变量。

Set rngFound = rngSearch.Find(What:="siccode", LookIn:=xlValues, LookAt:=xlPart)

Set rngFound2 = rngSearch.Find(What:="states", LookIn:=xlValues, LookAt:=xlPart)

尝试删除引号。

【讨论】:

  • 好收获!谢谢!顺便说一句,我实际上不希望我的 msgbox 返回 ros 号和列号,我只想返回最终的单元格值结果,我应该怎么做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多