Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
Vba 创建由年份+;月份+;复制数据的编号_Vba_Excel - Fatal编程技术网

Vba 创建由年份+;月份+;复制数据的编号

Vba 创建由年份+;月份+;复制数据的编号,vba,excel,Vba,Excel,大家好,我为每个循环将数据复制到摘要表中: For Each sheet_name In Sheets("Frontend").Range("L21:L31") Set ws = Worksheets(sheet_name.Text) For ZeileUntersucht = 20 To 515 If ws.Cells(ZeileUntersucht, 238).Value = "yes" Then Worksheets("Market Place Output")

大家好,我为每个循环将数据复制到摘要表中:

For Each sheet_name In Sheets("Frontend").Range("L21:L31")
Set ws = Worksheets(sheet_name.Text)

 For ZeileUntersucht = 20 To 515
    If ws.Cells(ZeileUntersucht, 238).Value = "yes" Then
        Worksheets("Market Place Output").Cells(ZeileEintragen, 3) = 
ws.Cells(ZeileUntersucht, 1)
        Worksheets("Market Place Output").Cells(ZeileEintragen, 4) = 
ws.Cells(ZeileUntersucht, 240)
        Worksheets("Market Place Output").Cells(ZeileEintragen, 6) = 
ws.Cells(ZeileUntersucht, 11)
        Worksheets("Market Place Output").Cells(ZeileEintragen, 7) = 
ws.Cells(ZeileUntersucht, 10)
        Worksheets("Market Place Output").Cells(ZeileEintragen, 9) = 
ws.Cells(ZeileUntersucht, 4)
        Worksheets("Market Place Output").Cells(ZeileEintragen, 2) = ws.Name
        Worksheets("Market Place Output").Cells(ZeileEintragen, 8) = "EUR"
        Worksheets("Market Place Output").Cells(ZeileEintragen, 10) = Date + 
Time
        ZeileEintragen = ZeileEintragen + 1


    End If
Next ZeileUntersucht

Next sheet_name
我想在第一列中添加一个如下所示的唯一标识符 2017510001.所以年+周+0001,然后对有数据的每一行向上计数

这就是我到目前为止所做的:

n = 1
For i = 11 To LastRow
    If  Then
     n = n + 1
    End If
 Next i

 txtCount = Format(n, "00")

'Create ID Number'

IDnum = " " & txtYear & "" & txtMonth & "-" & txtCount & ""
但我遇到了如何将ID实际输入到列A中以及如何仅用数据填充行的问题

如果您需要进一步的澄清,请询问

编辑:我当前的函数如下所示:

Sub MacroToDoTheWork()

Dim ws As Worksheet
Dim sheet_name As Range
Dim txtYear As String
Dim txtWeek As String
Dim txtCount As String
Dim LastRow As Long
Dim i As Long
Dim D As Date

'Define Variables 
txtYear = Format(D, "yyyy")
txtWeek = Format(D, "ww")

'Unique Identifier
LastRow = Worksheets("Market Place Output").Cells(Worksheets("Market Place Output").Rows.Count, "B").End(xlUp).Row
For i = 2 To LastRow
    txtCount = Format(i - 1, "0000")
    Worksheets("Market Place Output").Cells(i, 1).Value = txtYear & txtWeek & txtCount
Next i

End Sub
其输出为以下标识符: 1899520001而不是2017510001

这让我相信它实际上存储的是1899年12月31日,而不是当前日期。这是我目前面临的问题

试试看:

Dim i As Long, j As Long, k As String
'This would be where your other code sits, including Dim for LastRow
j = 1
For i = 11 To LastRow
    k = Format(j, "0000")
    Cells(i, 1).Value = "'" & txtYear & "" & txtMonth & k
    j = j + 1
    k = ""
Next i
我与您给出的示例进行了匹配,其中输出为(今天的第一项)2017120001。

尝试:

Dim i As Long, j As Long, k As String
'This would be where your other code sits, including Dim for LastRow
j = 1
For i = 11 To LastRow
    k = Format(j, "0000")
    Cells(i, 1).Value = "'" & txtYear & "" & txtMonth & k
    j = j + 1
    k = ""
Next i

我与您给出的示例进行了匹配,其中输出为(今天的第一个项目)2017120001。

如果您希望将其添加到工作表的A列(“市场输出”),则这将为您实现这一点(假设您有标题,并且txtYear和txtMonth中已经有一些数据):


如果您希望将其添加到工作表的A列(“市场份额输出”),那么这将为您提供帮助(假设您有标题,并且txtYear和txtMonth中已经有一些数据):


我们刚刚能够测试它,现在可以正常工作了!还有没有一种方法可以显示txtWeek而不是month呢?遗憾的是,语法似乎不一样。作为txtmount,我有:txtmount=格式(月(reqDate),“00”),再次感谢!当然可以,,只需确保txtWeek的格式与您当月所做的一样正确,并且应该如此简单……谢谢您的帮助,我的标识符以我想要的格式运行。我现在唯一的问题是,它没有按照今天的日期显示所有内容,而是按照1899年12月31日显示,我不知道为什么会这样那…我不太确定为什么会是这样,因为我没有样本数据可供测试,我猜,如果你能提供一些样本数据,那么我可以给你一个更有教育意义的答案…@Tim更新了我的答案,它按预期工作,我不确定你从哪里得到变量D的值,但我已经修改了,以今天的日期为准,它写的是2017510001,然后是2017510002,等等……我们刚刚能够测试它,现在它可以按预期工作了!还有没有一种方法可以显示txtWeek而不是month呢?遗憾的是,语法似乎不一样。作为txtmount,我有:txtmount=格式(月(reqDate),“00”),再次感谢!当然可以,,只需确保txtWeek的格式与您当月所做的一样正确,并且应该如此简单……谢谢您的帮助,我的标识符以我想要的格式运行。我现在唯一的问题是,它没有按照今天的日期显示所有内容,而是按照1899年12月31日显示,我不知道为什么会这样那…我不太确定为什么会是这样,因为我没有样本数据可供测试,我猜,如果你能提供一些样本数据,那么我可以给你一个更有教育意义的答案…@Tim更新了我的答案,它按预期工作,我不确定你从哪里得到变量D的值,但我已经修改了,以今天的日期为准,写的是2017510001,然后是2017510002,等等。。。