Vba Excel中的主要格式问题-VLOOKUP
我需要帮助解决Excel中的一个格式问题,它干扰了Excel工作表中的Vba Excel中的主要格式问题-VLOOKUP,vba,excel,formatting,excel-2007,vlookup,Vba,Excel,Formatting,Excel 2007,Vlookup,我需要帮助解决Excel中的一个格式问题,它干扰了Excel工作表中的VLOOKUP功能 我有两张表,其中有20000多个列值作为查找,以及相同数量的值作为参考。两个单元格中的所有值的格式都很奇怪,有些在单元格的左上角有绿色三角形,有些是文本,等等 在Excel中是否有方法使用宏/VBA删除或使两个工作表中的所有格式相似?使用VBA的原因是,处理此文件的人员需要所有内容都自动化,并且根本不熟悉Excel。我在单元格中已经有了VLOOKUP函数,我只需要处理格式化 好吧,我用这种方式对付部分查找:
VLOOKUP
功能
我有两张表,其中有20000多个列值作为查找,以及相同数量的值作为参考。两个单元格中的所有值的格式都很奇怪,有些在单元格的左上角有绿色三角形,有些是文本,等等
在Excel中是否有方法使用宏/VBA删除或使两个工作表中的所有格式相似?使用VBA的原因是,处理此文件的人员需要所有内容都自动化,并且根本不熟悉Excel。我在单元格中已经有了
VLOOKUP
函数,我只需要处理格式化 好吧,我用这种方式对付部分查找:
在items数组中,我创建新的空第一列,然后放置公式
="+"&B2
这将获取单元格B2的内容并在其前面添加+
当我执行vlookup时,我在可搜索值中添加“+”
=VLOOKUP("+"&A6,A:O,2,FALSE)
因此,我通过在前面添加“+”来比较字符串,而不是比较例如字符串和数字
另一种技术是取消所有格式设置:
选择整列,单击“数据-文本-列-分隔符”,然后取消选择所有分隔符。单击Finish。这将清除您的格式设置
===========================================================================
这是您要求的VBA解决方案:
从Excel中调用它
=GetLookup(G2,A:C)
以下是VBA:
Function GetLookup(LOOKFOR As String, RANGEARRAY As Range) As String
GetLookup = Application.WorksheetFunction.VLookup("+" & LOOKFOR, RANGEARRAY, 3, False)
End Function
祝你好运 好吧,我用这种方式对付部分查找: 在items数组中,我创建新的空第一列,然后放置公式
="+"&B2
这将获取单元格B2的内容并在其前面添加+
当我执行vlookup时,我在可搜索值中添加“+”
=VLOOKUP("+"&A6,A:O,2,FALSE)
因此,我通过在前面添加“+”来比较字符串,而不是比较例如字符串和数字
另一种技术是取消所有格式设置:
选择整列,单击“数据-文本-列-分隔符”,然后取消选择所有分隔符。单击Finish。这将清除您的格式设置
===========================================================================
这是您要求的VBA解决方案:
从Excel中调用它
=GetLookup(G2,A:C)
以下是VBA:
Function GetLookup(LOOKFOR As String, RANGEARRAY As Range) As String
GetLookup = Application.WorksheetFunction.VLookup("+" & LOOKFOR, RANGEARRAY, 3, False)
End Function
祝你好运 我假设所有单元格中的数据类型都相同,或者您希望所有单元格中的数据类型都相同。以下步骤将使单元格成为统一类型:
编辑:格式化、澄清我假设所有单元格中的数据类型都相同,或者您希望所有单元格中的数据类型都相同。以下步骤将使单元格成为统一类型:
编辑:格式化,澄清@Andrew:谢谢你的回复。这绝对有效。我还需要一个人帮忙,如果我要求太多,对不起。有没有可能用宏/VBA实现这个“+”和vlookup函数?@Gaffi:谢谢你的回答。代码给了我一个错误。当我调试它时,它会突出显示以下行:YourSheet1.Range(“A1”).FormatConditions=YourSheet2.Range(“A1”).FormatConditions=YourSheet1.Range(“A1”).Font=YourSheet1.Range(“A1”).Borders=YourSheet2.Range(“A1”).Borders'设置单元格的颜色/图案YourSheet1.Range(“A1”).Interior=YourSheet2.Range(“A1”).Interior@Nupur我将VBA添加到我的帖子@Andrew:代码运行良好。我唯一的问题是,当lookup函数从工作表复制一个日期值时,它会被转换成一个奇怪的数字,例如:401289,我想这是很常见的。但当我尝试将此值的格式更改为日期排序时,它与401289保持相同。“你能告诉我怎么解决这个问题吗?”安德鲁:谢谢你的回答。这绝对有效。我还需要一个人帮忙,如果我要求太多,对不起。有没有可能用宏/VBA实现这个“+”和vlookup函数?@Gaffi:谢谢你的回答。代码给了我一个错误。当我调试它时,它会突出显示以下行:YourSheet1.Range(“A1”).FormatConditions=YourSheet2.Range(“A1”).FormatConditions=YourSheet1.Range(“A1”).Font=YourSheet1.Range(“A1”).Borders=YourSheet2.Range(“A1”).Borders'设置单元格的颜色/图案YourSheet1.Range(“A1”).Interior=YourSheet2.Range(“A1”).Interior@Nupur我将VBA添加到我的帖子@Andrew:代码运行良好。我唯一的问题是,当lookup函数从工作表复制一个日期值时,它会被转换成一个奇怪的数字,例如:401289,我想这是很常见的。但是什么时候