复制单元格内容的一部分(没有明确的分隔符)

时间:2013-10-25 09:58:01

标签: excel excel-vba vba

我有一些“帐户”,我想为每个帐户创建一个唯一的参考代码。参考代码将是不同单元的部分组合。因此,例如,占据第1行的“帐户”的引用将是:cp78925

  • cp部分是一个常数,并且始终是相同的。

  • 789部分是单元格A1的最后三位数字,其中包含10位数代码

  • 25部分是单元格B1的前两位数字,其中包含帐户的开启日期。

例如:

如果A1 = 1123456789B1 = 25/10/2013C1中的唯一参考代码为= cp78925

在互联网上搜索显示了用空格(“”),/,字母等后分隔单元格内容的方法,或者将最后3位数字分成BOLD / ITALIC,但我无法弄清楚如何得到我的具体答案

提前多多感谢。我希望这很清楚。

2 个答案:

答案 0 :(得分:2)

你需要像

这样的东西

<击> ="CP" & RIGHT(A1,3) & DAY(B1)

="CP" & RIGHT(A1,3) & TEXT(B1,"dd")

无论如何,如果两个A1代码在同一天以相同的3位结尾,则此公式不会给您一个唯一的引用。

1234567890 01/01/2013
3213512890 01/02/2013

两者都会返回CP89001

修改 正如Sam092报告(谢谢),DAY()返回一个数值,TEXT()是正确的函数使用

答案 1 :(得分:1)

C1

中的公式
="CP"&RIGHT(A1,3)&LEFT(TEXT(B1,"DD/MM/YYYY"),2)

修改

我发现您已使用VBA标记了您的问题。你不需要vba,但如果你想要一个VBA解决方案,那么试试这个

ThisWorkbook.Sheets("Sheet1").Range("C1").Formula = _
"=""CP""&RIGHT(A1,3)&LEFT(TEXT(B1,""DD/MM/YYYY""),2)"

ThisWorkbook.Sheets("Sheet1").Range("C1").Value = Evaluate( _
"=""CP""&RIGHT(A1,3)&LEFT(TEXT(B1,""DD/MM/YYYY""),2)")