在excel表中,如何将 公司全称改为简称?如:深圳市华美丽科技有限公司变成简称华美丽,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在excel表中,如何将 公司全称改为简称?如:深圳市华美丽科技有限公司变成简称华美丽,相关的知识,希望对你有一定的参考价值。
ctrl+T调出查找与替换窗口,点替换,查找内容后输入:深圳市华美丽科技有限公司,替换为后输入:华美丽,最后点全部替换,完成。
如下图:
参考技术A 分列,或者公式,假设全称在A1,简称B1单元格公式:
=MID(A6,FIND("市",A6)+1,FIND("科",A6)-FIND("市",A6)-1)追问
按你的公式,但有些拉出是错码的
追答那是因为有些公司后面没有“科技”字样。修改一下公式(只要后缀有“有限","科技","公司"之一即可):
=MID(A1,FIND("市",A1)+1,IFERROR(FIND("科",A1)-FIND("市",A1)-1,IFERROR(FIND("有",A1)-FIND("市",A1)-1,FIND("公",A1)-FIND("市",A1)-1)))
恩,这个我改了,还有就是前面没有“市”的怎么改?
那要知道城市名才行或找到规律,假设城市名是两个字(无”市”字)或三个字,
=IF(MID(A1,3,1)="市",MID(A1,4,IFERROR(FIND("科",A1)-4,IFERROR(FIND("有",A1)-4,FIND("公",A1)-4))),MID(A1,3,IFERROR(FIND("科",A1)-3,IFERROR(FIND("有",A1)-3,FIND("公",A1)-3))))
Ctrl + H追问
我这个是100多家公司想快捷方式全部改为简称来的?
Excel VBA:如何将代码执行限制在工作表中
【中文标题】Excel VBA:如何将代码执行限制在工作表中【英文标题】:Excel VBA: how can I restrict code execution to the sheet 【发布时间】:2017-12-19 14:19:46 【问题描述】:我有一张在 sheet1 的单元格中调用的函数的工作表。 当我更改为 sheet2,编辑某些内容并返回 sheet1 时,我看到值更改(因为我使用 ActiveWorkbook 和 ActiveSheet)。如果我在 sheet1 中做某事,价值就会回来。
我也可以拥有多个具有相同数据的工作簿...
编辑:我忘了指定工作簿的名称,工作表不是静态的,都是动态的。
编辑 2:我认为 Excel 在编辑工作表并执行 VBA 代码时会刷新所有工作表,但活动表不是数据所在的 Sheet1 ...因此,VBA 代码在错误的工作表中运行。
编辑 3:工作表将“计算选项”改为“自动”,我的 Excel 页面底部有一个按钮“计算”,用于强制刷新所有公式和 VBA 代码。
Excel 单元格内容:
=IF(BD66;MainFunction(BJ66);"")
主要功能:
Function MainFunction(var)
MainFunction = (var * Test()) / (...)
End Function
子函数用于多个函数:
Private Function Test()
Test = ActiveWorkbook.ActiveSheet.Range("BE50")
End Function
如何只在活动工作表上而不是在所有工作表上执行代码?
或者最好的方法是什么?
感谢您的帮助。
【问题讨论】:
您的问题对我来说不是很清楚,但您可以根据您的使用情况,使用 Worksheets("Sheet1") 或 Sheets("Sheet1") 来专门定位工作表,无论是否指定 ActiveWorkbook。 你是对的,但我忘了指定工作表的名称和工作簿是动态的。对不起... 您可以发布您尝试调用的实际代码和函数吗?即使它们是动态的,您只希望它们在您所在的当前工作表上工作,因此ActiveSheet.Range
应该可以正常工作,因为它只在该工作表上。没有看到你的手机信息/真实代码,我不确定我能得到多少帮助。
@Busse :我在帖子中添加了信息。确实,只有 sheet1 是更新的,是的。但是,该函数检索错误的数据。如果我编辑 sheet2,ActiveSheet 是 Sheet2 而不是 Sheet1。所以,当我回到 Sheet1 时,我有“#VALUE!”,因为 VBA 函数与 Sheet2 作为 ActiveSheet 一起运行......我只想在当前工作表上而不是在所有工作表或工作簿上运行 VBA 代码。如果我能做到这一点,它会救我。
【参考方案1】:
据我所知 - 您的 Test 函数总是查看活动表而不是包含 =IF(BD66;MainFunction(BJ66);"")
公式的工作表,从而导致问题。
要查看此表,您需要查看使用 Application.Caller
调用函数的单元格:
Public Function MainFunction(Target As Range) As Double
MainFunction = Target * Test(Application.Caller)
End Function
Private Function Test(Target As Range) As Double
Test = Target.Parent.Range("BE50")
End Function
我已将 var
更新为 Target
,因为这是我在工作表事件中经常看到的内容。
【讨论】:
你说得对,是我的问题!但你的解决方案在我的情况下不起作用。【参考方案2】:我找到了解决问题的方法... 我在主函数中添加参数以替换所有使用“Active...”的子函数
我的公式不太容易构建,但它适用于包含公式的工作表......
感谢您的帮助
【讨论】:
以上是关于在excel表中,如何将 公司全称改为简称?如:深圳市华美丽科技有限公司变成简称华美丽,的主要内容,如果未能解决你的问题,请参考以下文章
excel中,有一列是公司名称,如果我在其他单元格里面输入公司的简称立即就可以显示公司全称,怎么实现?