每次我用 vba 填写表格时增加 excel 中的 Y 值
Increase the Y value in excel each time I fill out a form with vba
我在 Excel 中有一个表格,我使用 Vba 收集该数据并将其放入 table 中。每次我填写新信息时,它所做的只是替换旧信息。这是因为 Visual Basic 的输出不是动态的。
我的问题是每次填写表格时如何增加 Y 轴。我需要 Range/Cells 中的一个变量,每次按下宏按钮时该变量都会增加 1。
Sub aksjer()
Dim stockname As String
Dim price As Integer
Dim number As Integer
Dim totalprice As Integer
Dim pe As Integer
Dim mkt As Long
Dim volume As Integer
Dim eps As Integer
Dim divye As Integer
stockname = Range("M5").Value
price = Range("M6").Value
number = Range("M7").Value
totalprice = Range("M8").Value
mkt = Range("M9").Value
pe = Range("M10").Value
eps = Range("M11").Value
divye = Range("M12").Value
volume = Range("M13").Value
Range("A6") = Format(Date, "dd-mm-yyyy")
Range("B6") = stockname
Range("C6") = price
Range("D6") = number
Range("E6") = totalprice
Range("G6") = pe
Range("F6") = mkt
Range("J6") = volume
Range("H6") = eps
Range("I6") = divye
Range("M5:M13") = ""
End Sub
您可以检查此
已经使用了多少行
usedrows = ActiveSheet.UsedRange.End(xlDown).Row
然后将您的单元格称为 Cells
而不是 Range
并使用日期作为行号示例的 +1:
Cells( usedrows + 1 , 1) = Format(Date, "dd-mm-yyyy")
无需将您的值传递给变量,然后再将它们传递回单元格。浪费代码。试试这个:
Sub aksjer()
Dim LastRow As Long
LastRow = Range("A" & Rows.Count).End(xlUp).Row + 1
Range("A" & LastRow).Value = Format(Date, "dd-mm-yyyy")
Range("B" & LastRow).Value = Range("M5").Value
Range("C" & LastRow).Value = Range("M6").Value
Range("D" & LastRow).Value = Range("M7").Value
Range("E" & LastRow).Value = Range("M8").Value
Range("F" & LastRow).Value = Range("M9").Value
Range("G" & LastRow).Value = Range("M10").Value
Range("H" & LastRow).Value = Range("M11").Value
Range("I" & LastRow).Value = Range("M12").Value
Range("J" & LastRow).Value = Range("M13").Value
Range("M5:M13").ClearContents
End Sub
我在 Excel 中有一个表格,我使用 Vba 收集该数据并将其放入 table 中。每次我填写新信息时,它所做的只是替换旧信息。这是因为 Visual Basic 的输出不是动态的。 我的问题是每次填写表格时如何增加 Y 轴。我需要 Range/Cells 中的一个变量,每次按下宏按钮时该变量都会增加 1。
Sub aksjer()
Dim stockname As String
Dim price As Integer
Dim number As Integer
Dim totalprice As Integer
Dim pe As Integer
Dim mkt As Long
Dim volume As Integer
Dim eps As Integer
Dim divye As Integer
stockname = Range("M5").Value
price = Range("M6").Value
number = Range("M7").Value
totalprice = Range("M8").Value
mkt = Range("M9").Value
pe = Range("M10").Value
eps = Range("M11").Value
divye = Range("M12").Value
volume = Range("M13").Value
Range("A6") = Format(Date, "dd-mm-yyyy")
Range("B6") = stockname
Range("C6") = price
Range("D6") = number
Range("E6") = totalprice
Range("G6") = pe
Range("F6") = mkt
Range("J6") = volume
Range("H6") = eps
Range("I6") = divye
Range("M5:M13") = ""
End Sub
您可以检查此
已经使用了多少行usedrows = ActiveSheet.UsedRange.End(xlDown).Row
然后将您的单元格称为 Cells
而不是 Range
并使用日期作为行号示例的 +1:
Cells( usedrows + 1 , 1) = Format(Date, "dd-mm-yyyy")
无需将您的值传递给变量,然后再将它们传递回单元格。浪费代码。试试这个:
Sub aksjer()
Dim LastRow As Long
LastRow = Range("A" & Rows.Count).End(xlUp).Row + 1
Range("A" & LastRow).Value = Format(Date, "dd-mm-yyyy")
Range("B" & LastRow).Value = Range("M5").Value
Range("C" & LastRow).Value = Range("M6").Value
Range("D" & LastRow).Value = Range("M7").Value
Range("E" & LastRow).Value = Range("M8").Value
Range("F" & LastRow).Value = Range("M9").Value
Range("G" & LastRow).Value = Range("M10").Value
Range("H" & LastRow).Value = Range("M11").Value
Range("I" & LastRow).Value = Range("M12").Value
Range("J" & LastRow).Value = Range("M13").Value
Range("M5:M13").ClearContents
End Sub