如何根据 Excel vba 中的周数生成累积库存图
How to generate accumulated inventory plot based on week number in Excel vba
我想用ExcelVBA2016自动绘制累积库存图
我有不同年份的库存数据,格式为“20XXYY”。这里 "XX" 表示年份,"YY" 表示一年中的周数(1 到 52)。我将拥有类似于图片 1 的数据。然后我想将其排序为图片 2。最后将绘图绘制为图片 3。但是,我希望使用 VBA.
自动生成它
我的问题是如何自动为绘图创建连续的 YearWeek 列?
我在 "Accumulated Inventory" 列中使用了 "=SUM($Y$2:Y2)"^^ 公式。如果我能得到任何线索,我将不胜感激。
'这就是答案。我已经弄清楚了。谢谢您的支持。
Sub consecutiveNumber()
Dim wsFrom As Worksheet
Dim Com As String
Dim lLastNumber,FirstNumber, l, i As Long
'change to names of sheets you are coptying from and to
Set wsFrom = ThisWorkbook.Sheets("Sheet1")
'Get the value in the last and first used text box of column A
lLastNumber = wsFrom.Range("A" & Rows.Count).End(xlUp).Value
FirstNumber = wsFrom.Range("A1").Value
'clear column B
wsFrom.Range("B:B").Clear
'Initializing the cell index value
i = 1
'fill column B on sheet 1 with first to last number on column A
For l = FirstNumber To lLastNumber
'Converting number to string
Com = Right(CStr(l), 2)
If CInt(Com) >= 53 Then
l = l + 48
wsFrom.Range("M" & i) = l
i = i + 1
Else
wsFrom.Range("M" & i) = l
i = i + 1
End If
Next
End Sub
我想用ExcelVBA2016自动绘制累积库存图
我有不同年份的库存数据,格式为“20XXYY”。这里 "XX" 表示年份,"YY" 表示一年中的周数(1 到 52)。我将拥有类似于图片 1 的数据。然后我想将其排序为图片 2。最后将绘图绘制为图片 3。但是,我希望使用 VBA.
自动生成它我的问题是如何自动为绘图创建连续的 YearWeek 列?
我在 "Accumulated Inventory" 列中使用了 "=SUM($Y$2:Y2)"^^ 公式。如果我能得到任何线索,我将不胜感激。
'这就是答案。我已经弄清楚了。谢谢您的支持。
Sub consecutiveNumber()
Dim wsFrom As Worksheet
Dim Com As String
Dim lLastNumber,FirstNumber, l, i As Long
'change to names of sheets you are coptying from and to
Set wsFrom = ThisWorkbook.Sheets("Sheet1")
'Get the value in the last and first used text box of column A
lLastNumber = wsFrom.Range("A" & Rows.Count).End(xlUp).Value
FirstNumber = wsFrom.Range("A1").Value
'clear column B
wsFrom.Range("B:B").Clear
'Initializing the cell index value
i = 1
'fill column B on sheet 1 with first to last number on column A
For l = FirstNumber To lLastNumber
'Converting number to string
Com = Right(CStr(l), 2)
If CInt(Com) >= 53 Then
l = l + 48
wsFrom.Range("M" & i) = l
i = i + 1
Else
wsFrom.Range("M" & i) = l
i = i + 1
End If
Next
End Sub