在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))))

本回答被提问者采纳
参考技术B 查找替换。

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中全称批量转换为简称?

excel中,有一列是公司名称,如果我在其他单元格里面输入公司的简称立即就可以显示公司全称,怎么实现?

如何在excel中把所有供应商公司的全称转换成简称?

用EXCEL将公司的简称变为全称 我有一张表格全是公司简称,一张表式公司全称,怎么样才能将简称转化成

excel中,怎样设置公司简称变全称

EXCEL做个公式,希望输入全称,后面显示简称