相关疑难解决方法(0)

检查Column中是否存在Cell值,然后获取NEXT Cell的值

在检查列中是否存在单元格值之后,我需要获取匹配单元格旁边的单元格的值.例如,我检查是否cell A1存在值column B,并假设它匹配B5,然后我想要值cell C5.

要解决问题的前半部分,我这样做了......

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")
Run Code Online (Sandbox Code Playgroud)

......而且它奏效了.然后,由于早先对SO的回答,我还能够获得匹配单元格的行号:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MATCH(A1,B:B, 0))
Run Code Online (Sandbox Code Playgroud)

很自然地,为了获得下一个细胞的价值,我试着......

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", C&MATCH(A1,B:B, 0))
Run Code Online (Sandbox Code Playgroud)

......它不起作用.

我错过了什么?如何将列号附加到返回的行号以获得所需的结果?

excel

87
推荐指数
3
解决办法
78万
查看次数

当没有Object时,VBA for Excel会抛出"对象变量或未设置块变量"

在我的代码中,我声明了这些变量:

Dim Field_Name, Datatype, row As Integer
Run Code Online (Sandbox Code Playgroud)

然后,在For循环中,我有这个代码:

Field_Name = Worksheets(i).UsedRange.Find("Field Name").Column
Datatype = Worksheets(i).UsedRange.Find("Datatype").Column
row = Worksheets(i).UsedRange.Find("Field Name").row + 1
Run Code Online (Sandbox Code Playgroud)

但是,该代码抛出"对象变量或未设置块变量"运行时错误.根据API,Range.Column和Range.row属性是只读的Long.我已经尝试将变量的数据类型设置为Long,但没有成功.看起来VBA期待我这样做

Set Field_Name = Worksheets(i).UsedRange.Find("Field Name").Column
Set Datatype = Worksheets(i).UsedRange.Find("Datatype").Column
Set row = Worksheets(i).UsedRange.Find("Field Name").row + 1
Run Code Online (Sandbox Code Playgroud)

但是,所述变量不是对象,因此这样做会抛出"Object required"编译错误.

任何有关这方面的帮助将不胜感激.如果您不确定如何修复它,那么获取单元格的列号和行号的任何变通方法或替代方法都将非常感激.

vb6 excel vba excel-vba excel-2013

10
推荐指数
3
解决办法
7万
查看次数

标签 统计

excel ×2

excel-2013 ×1

excel-vba ×1

vb6 ×1

vba ×1