1

我的问题是关于 VBA excel 代码。

我可能想写一个宏,但我对编码不是很熟悉,所以我正在寻找一些指导。

基本上我有一个带有一些字段但没有填写值的表格的 excel 电子表格,然后我有一个单独的电子表格,其中包含我想进入第一个电子表格的值表

例如,这将是我所拥有的简要细分:

高度: *要填充的空白单元格*

长度:*要填充的空白单元格*

宽度:*要填充的空白单元格*

我想设置一个宏,这样当我在第一行输入 10 时(请注意,有两列,一列用于名词,例如“高度”,另一列用于实际值。),它将查找我的第二个工作表使用值表,并根据计算表中的相邻值自动填充长度和宽度字段。

我希望这是有道理的!

我尝试创建一个新宏并编写一个基本的 if/and 函数,但宏不会运行。我启用了宏,但它告诉我我的代码没有定义的对象。因为我无法让它运行,所以我并没有过多考虑合并查找命令。

我在网上对基本的 if/and 语句进行了一些研究,它们似乎并不难,但是我的值表有 126 行不同的行,每行都有一个高度。长度和宽度值,因此它将是 3 个水平列 x 126 个垂直行。对我来说,必须做这么多 if/and 语句似乎有些过分。

我也发现很难查找不同的工作表。这张桌子很大,我宁愿把它放在一张单独的纸上,而不是把它放在第一张纸的另一边并在那里运行查找(对我来说似乎很乱)

抱歉,如果我没有很好地解释这一点。任何帮助是极大的赞赏!

4

1 回答 1

3

我建议你不要使用 VBA。您可以使用 VLOOKUP 功能实现此目的。

以下是我在 Sheet2 中的一些示例。

H   L   W
1   2   3
5   10  12
10  11  12
15  15  15

为方便起见,我定义了一个名称 ,myHLW它被定义为 sheet2!$a$1 到 sheet2!$c$5。

在 Sheet1 中,我键入Height Width Lengtha1、b1 和 c1。

我输入10a2。然后我在 b2: 中输入了这个公式=VLOOKUP($A2,myHLW,2)。这告诉 Excel (a) 查找 a2 中的值(当前为 10)。(b) 查看指定区域 myHLW。(c) 将第 2 列中的任何内容放入找到的行中。Excel11为我填写。

然后我在 c2: 中输入了这个公式=VLOOKUP($A2,myHLW,3)。这告诉 Excel 使用命名区域 myHLW 查找 a2(当前为 10)中的值,并将第 3 列中的任何内容放在找到的行中。Excel12为我填写。

我把公式复制下来,输入不同的高度。它看起来像这样:

Height  Length  Width
10          11  12
5           10  12
1           2   3
3.14159     2   3

请注意,Sheet2 中的高度必须按升序排列。另请注意,对于未找到的高度 (3.14159),它使用高度为 1(未超过的最大值。)

您还可以添加第四个参数,例如=VLOOKUP($A2,myHLW,3,FALSE). 如果第四个参数为假,Excel 将要求完全匹配。如果您为 VLOOKUP 执行此操作,#N/A则如果没有匹配项,Excel 会放置。

于 2013-04-15T14:59:14.750 回答