Excel 连接单元格并保持原始格式

Excel 连接单元格并保持原始格式,excel,Excel,我们正在从基于Excel的系统迁移到数据库驱动的系统,需要将大量数据上传到数据库中。我创建了一个工作簿,它将获取主工作簿中存储的数据,并将其拆分为工作表,这些工作表可以直接上载到数据库表中。项目大部分进展顺利,但有一个问题。我需要连接两个单元格并保持原始格式 具体来说,我需要连接站点和设备ID的单元格 我从一些基本的东西开始,比如: =串联(C2,“-”,D2) 这就是我遇到的第一个问题。一些站点编号的前导零是源数据格式的一部分,我需要前导零 这促使我下一次尝试: =连接(文本(C2,“0000

我们正在从基于Excel的系统迁移到数据库驱动的系统,需要将大量数据上传到数据库中。我创建了一个工作簿,它将获取主工作簿中存储的数据,并将其拆分为工作表,这些工作表可以直接上载到数据库表中。项目大部分进展顺利,但有一个问题。我需要连接两个单元格并保持原始格式

具体来说,我需要连接站点和设备ID的单元格

我从一些基本的东西开始,比如:

=串联(C2,“-”,D2)

这就是我遇到的第一个问题。一些站点编号的前导零是源数据格式的一部分,我需要前导零

这促使我下一次尝试:

=连接(文本(C2,“000000000”),“-”,D2)

这保留了前导零,但正如预期的那样,还向不应该有前导零的站点添加了前导零。有些旧站点尚未转换为新站点格式

我的下一次努力也取得了预期的效果。我试着检查单元格值的长度,如果零只出现在源单元格中,则只在连接的单元格中添加它们。正如我所预料的,前导零没有包含在长度中


有没有一种方法可以使用Excel函数来实现这一点?如果没有,请提供一些指针(不需要完整的代码,只需要面包屑。当别人编写代码时,我学的东西不如我在处理代码时学的那么多)来创建一个自定义函数来连接单元格。

试试这个快速的用户定义函数

在标准模块代码表中

function concSiteDevice(s as range, d as range, _
                        optional delim as string = "-")

    concSiteDevice = join(array(s.text, d.text), delim)

end function
这将利用单元格中的值,而不是原始值

在工作表上

 =concSiteDevice(C2, D2)
使用可选的delim参数,可以将连字符更改为任何其他字符。例如,要使用@符号

 =concSiteDevice(C2, D2, "@")

试试这个快速的用户定义函数

在标准模块代码表中

function concSiteDevice(s as range, d as range, _
                        optional delim as string = "-")

    concSiteDevice = join(array(s.text, d.text), delim)

end function
这将利用单元格中的值,而不是原始值

在工作表上

 =concSiteDevice(C2, D2)
使用可选的delim参数,可以将连字符更改为任何其他字符。例如,要使用@符号

 =concSiteDevice(C2, D2, "@")

你试过&?Ie=A1&B1-不确定您拥有的确切数据,因此未测试,但&适用于我所需的大部分数据…是的,我也尝试过,它不包括前导的零,就像我将从您得到的答案中学到一些东西一样!干杯。你试过&吗?Ie=A1&B1-不确定您拥有的确切数据,因此未测试,但&适用于我所需的大部分数据…是的,我也尝试过,它不包括前导的零,就像我将从您得到的答案中学到一些东西一样!干杯,谢谢!太完美了!!非常感谢。太完美了!!