VBA将不完整的行组复制到特定工作表

时间:2017-08-31 17:23:55

标签: excel vba excel-vba

我在使用此代码时遇到问题。它应该通过列A直到它找到" Employee"的下一个实例,然后将这些行复制到C列中指定的工作表,然后继续向下返回列表。我对VBA很陌生,有人可以帮帮我吗?

员工信息介于单词" Employee"的每两个实例之间,因此我尝试将其设置为我的触发器以及行的起点和终点。

向所有人道歉,显而易见我是新人。我对代码的目标是将范围从一张纸(" Regs")复制到C列所述范围内的单元格中指定的另一张纸。此范围是5到16行高,每个一个被"员工"的两个实例夹在中间。在A列:一个用"员工:###### - Lname,Fname"和#34;员工总计"。我的具体问题是在复制每个范围后将循环设置为可变数量(变量金额是先前复制范围的行数)。

我偶然发现了一个解决方案,我在下面提到了,但我确信它可以做得更好。

$ flink --version
java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.util.StringUtils
    at org.apache.hadoop.security.SecurityUtil.getAuthenticationMethod(SecurityUtil.java:611)
    at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:272)
    at org.apache.hadoop.security.UserGroupInformation.setConfiguration(UserGroupInformation.java:311)
    at org.apache.flink.runtime.security.modules.HadoopModule.install(HadoopModule.java:49)
    at org.apache.flink.runtime.security.SecurityUtils.install(SecurityUtils.java:78)
    at org.apache.flink.client.CliFrontend.main(CliFrontend.java:1128)

3 个答案:

答案 0 :(得分:0)

首先想到的是使用Find。如果您遇到查找问题,可以使用:

Dim i, j, k, LR as Integer
j=0
k=0
LR = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 to LR
    If Cells(i,1).Value="Employee" Then
        If k=0 And j=0 Then
            k=Cells(i,1).Row
        Else 
            If j=0 Then
                j=Cells(i,1).Row
            Else
            End If
        End If
    Else
    End If
Next i
DestinationRange.Value = Range(Rows(k+1),Rows(j-1)).Value 'Destination range is where you want to be; not defined

答案 1 :(得分:0)

花了几个小时的时间,偶然发现了一个解决方案。如果你能做得更好,请编辑!

let ids = [a lot of ids here]

while (ids.length > 0) {

   let c = ids.splice(0, 5)
   let promises = []
   for (let i = 0; i < c.length; i++) {
      promises.push(fetch("someURL").then(function() {}))
   }
   Promise.all(promises)
}

答案 2 :(得分:0)

如果不选择工作表,您可以执行此操作。

Sub HourAllocationsRegs2()
    Dim lngLastRow As Long, x As Long, x1 As Long

    Dim SheetName As String, strMyValue As String
    strMyValue = "Employee"                           'Value to search for, change as required.
    With Worksheets("Regs")
        lngLastRow = .Range("A" & .Rows.Count).End(xlUp).Row
        For x = 2 To lngLastRow
            If InStr(1, .Cells(x, 1), strMyValue) > 0 Then
                For x1 = x + 1 To lngLastRow
                    If x1 = lngLastRow Or InStr(1, .Cells(x1 + 1, 1), strMyValue) > 0 Then
                        SheetName = .Cells(x + 1, 1).Value
                        .Rows(x & ":" & x1).Copy Destination:=Worksheets(SheetName).Range("A" & .Rows.Count).End(xlUp).Offset(1)
                        x = x1
                        Exit For
                    End If
                Next
            End If
        Next
    End With
End Sub