Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel vba-格式为isn';t复制到其他单元格_Excel_Vba - Fatal编程技术网

Excel vba-格式为isn';t复制到其他单元格

Excel vba-格式为isn';t复制到其他单元格,excel,vba,Excel,Vba,我得到了一个excel文件,在1个单元格上有一个自动增量,其中numberformat是“000” 这很好,所以我的第一个数字是:001而不是1 现在我需要将这个单元格合并到另一个单元格M16(它显示一个输入,例如:2020) 但由于某种原因,它正在丢失他的数字格式,excel显示:2020/1而不是2020/001 我尝试了一些方法,比如格式化我的单元格M18 Worksheets("TEST").Range("M18").NumberFormat = "0000/000" 或者直接在vba

我得到了一个excel文件,在1个单元格上有一个自动增量,其中numberformat是“000”

这很好,所以我的第一个数字是:001而不是1

现在我需要将这个单元格合并到另一个单元格M16(它显示一个输入,例如:2020)

但由于某种原因,它正在丢失他的数字格式,excel显示:2020/1而不是2020/001

我尝试了一些方法,比如格式化我的单元格M18

Worksheets("TEST").Range("M18").NumberFormat = "0000/000"
或者直接在vba中解决这个问题

Worksheets("TEST").Range("M18").Value = Worksheets("FACTUUR").Range("M16").Value & Worksheets("TEST").Range("M17").Value
Worksheets("TEST").Range("M18").NumberFormat = "0000/000"
或者甚至通过改变Excel本身的格式,但是我直接收到一条错误消息(不知道为什么…)


您知道如何解决这个问题吗?

代码的第一部分只会更改向用户显示数字的方式。如果在运行代码后单击单元格M17,您将看到实际值只是1,而不是001。您需要使用BigBen之前建议的格式$,然后按照以下代码连接:

    Worksheets("test").range("M17").value = Worksheets("test").range("M17").value + 1
    Worksheets("test").range("M17").NumberFormat = "000"

    Dim firstValue As String: firstValue = Worksheets("test").range("M16").value
    Dim secondValue As String: secondValue = 
    Format$(Worksheets("test").range("M17").value, "000")
    Worksheets("test").range("M18").value = firstValue & "/" & secondValue

您使用的excel应用程序配置为使用十进制逗号而不是小数点

因此,在单元格中键入的公式应该有分号

=M16&"/"&TEXT(M17;"000")
请注意,可以使用逗号将相同的公式指定给VBA中的单元格:

Range("M18").Formula="=M16&""/""&TEXT(M17,""000"")"

:(

在连接时使用
格式$
=1/2
是否在excel版本上显示为
0,5
0.5
?此解决方案的缺点是,用户每次编辑工作表时都需要触发VBA代码。谢谢!我不相信这是我的问题,而且大多数问题我自己都没有发现:p谢谢(再次感谢你的帮助
=M16&"/"&TEXT(M17;"000")
Range("M18").Formula="=M16&""/""&TEXT(M17,""000"")"