在同一工作表中查找不同范围的lastrow

时间:2017-06-21 03:25:28

标签: excel vba excel-vba

我需要执行一个自动化任务,将linux中的表复制到excel,然后填充图形以进行跟踪。该任务几乎完全自动化,但我仍然需要在Excel中执行一些手动作业。

据推测,在SUMMARY(1)工作表中,我有10种不同的模式和SUMMARY(2)工作表,有10种不同的模式。每周,每种模式的数据将自动从col F:K更新。我已经使用VBA自动完成了该部分。但是,我需要手动编写每个模式的col A:D,其中:

  • col A:O表示占用,E表示空
  • col B:周数
  • col C:具有特定格式的日期,而不是通常的
  • col D:数据库名称

由10个模式组成的概要工作表来自A1:S51(模式1),A52:S:101(模式2),依此类推,直到最后一个A452:S501(模式10),其中所有模式'范围是50个细胞。

我已经提示用户输入并存储在变量中,但是如何将值粘贴到每个模式的下一行。例如,我已经从W1更新到W4,当用户提示输入WW5时,这些值将在每个模式的lastrow之后存储在下一行。

这是关于模式1和模式2的示例。其余的模式可能会在模式2之后被跟踪。

SUMMARY(1)

这是我当前的代码,当用户输入值时,它将粘贴到每个模式的第一行:

Private Sub CommandButton1_Click()

Dim d As Variant
Dim w As Variant
Dim daymonth As Variant
Dim data As Variant
Dim i As Integer

d = InputBox("Enter the D:")
w = InputBox("Enter the Week:")
daymonth = InputBox("Enter the date:")
data = InputBox("Enter the database name:")
For i = 2 To 501 Step 50
     Cells(i, 1).Value = d
     Cells(i, 2).Value = w
     Cells(i, 3).Value = daymonth
     Cells(i, 4).Value = data

Next i

End Sub

1 个答案:

答案 0 :(得分:0)

这是一个可以解决问题的代码。在运行代码之前,如果存在少于2行数据的任何模式,则此代码将无法正常工作。在这种情况下,您需要根据您的处理方式对其进行修改。

wk_no = InputBox("Enter Week")

For i = 1 To 2 ' Iterating through sheets
    For j = 2 To 452 Step 50 'Iterating through the rows
        Sheets(i).Range("B" & Trim(Str(j))).End(xlDown).Offset(1, 0).Value = wk_no
    Next j
Next i