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,等等。。。