如果可能的话,我需要帮助创建excel宏,这将清理我的电子表格中的一些字段。
我收到的excel电子表格与不同数量的记录。在下面的电子表格中,我需要格式化字段,如、Name、/、姓氏、/、职称、/ City (我手动使用了excel to ()函数)。最重要的是,我还需要用另一个工作表中的标准值替换Industry字段。并且:替换State (从短期值(如TX到德克萨斯)),也将Country从美国、美国或美利坚合众国替换为"United States“。(当我手动执行此操作时,我使用了VlookUp ()函数)。
示例:我有电子表格,比如:
表1,数据:
FName LName Email Title City ST Phone Industry Country John sm j@hotmail.com it dallas TX 5556663344 mobile us jess lee jess@aol.com ba ny ny 6667775656 art usa nick Jahn nick@aol.com ba raleigh ny 444-3338888 tech us
Sheet2,州:
ST ST_Full TX Texas NY New York NC North Carolina
->所有美国/加拿大州名单
第3页,工业:
Industry Industry_Correct Mobile Telecom Art Other Tech Technology
->列出所有可能变化的正确/不正确的行业
表4,国家:
Country
Angola Canada Russian Federation United States
对于第4页,我有200多个国家的字母列表,需要将“我们”“俄罗斯”这样的国家替换为名单上的正确名称。
结果表,(预期会有什么):
FName LName Title City ST Phone Industry Country John Sm It Dallas Texas 555-666-3344 Telecom United States Jess Lee Ba New York New York 666-777-5656 Other United States Nick Jahn Ba Raleigh New York 444-333-8888 Technology United
`States` email j@hotmail.com jess@aol.com nick@aol.com
我试图记录非常简单的宏;但是我有非常不同的电子表格--不同数量的记录--从5到2000或3000条记录。简单记录宏只以某种方式清除固定数量的记录。
发布于 2015-10-22 22:51:10
听起来,您的录制宏工作正常,只是它正在处理固定数量的记录。您需要使范围动态,以便宏可以自动查看有多少行数据。如果没有看到您的代码,就很难告诉您如何实现它。一般来说,像这样的东西会起作用:
Dim sht As Worksheet
Dim LastRow As Long
Set sht = ThisWorkbook.Worksheets("[sheet name]")
'Can also reference the sheet code, which is better in my opinion. Set sht = Sheet1 or whatever number your sheet is.
'This will fetch the last row for you
LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row你可能会发现这个网站很有帮助:http://www.thespreadsheetguru.com/blog/2014/7/7/5-different-ways-to-find-the-last-row-or-last-column-using-vba
为了回应您的评论:您应该在代码的最开始实现这一点。因此,我们要做的是: 1)为宏设置工作表,2)确定该表中的最后一行数据,3)然后使用最后一行设置宏要处理的范围,或者至少遍历宏并将第1000行替换为LastRow。因此,除了我提供的代码之外,您还可能有以下内容:
Dim myRange as Range: Set myRange = sht.Range("A2:Z" & LastRow)然后,当需要宏在该范围内执行某些操作时,您可以简单地引用myRange。希望这能有所帮助。如果有必要,您应该能够编辑原始文章,添加一些代码,而不是创建一个新的帖子。至于您的IFERROR问题,如果没有更多的信息,很难说出最正确的方法。一般来说,我认为使用if/ its语句更好,但您当然可以只使用WorksheetFunction.iferror(.)如果您需要复制内置在Excel中的iferror功能。
https://stackoverflow.com/questions/33285519
复制相似问题