嗨大家对于每个循环我将数据复制到摘要表中:
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的唯一标识符。所以Year + Week + 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
这让我相信它实际上存储了日期31.12.1899而不是当前日期。这是我面临的当前问题。
如果您要将其添加到工作表的A列(“市场输出”)中,那么这将为您执行此操作(假设您有标题,并且txtYear和txtMonth已经包含一些数据):
Sub foo()
LastRow = Worksheets("Market Place Output").Cells(Worksheets("Market Place Output").Rows.Count, "B").End(xlUp).Row
txtYear = Format(Date, "yyyy")
txtWeek = Format(Date, "ww")
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
尝试:
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。