Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 基于相邻单元格中的值复制单元格值_Vba_Excel - Fatal编程技术网

Vba 基于相邻单元格中的值复制单元格值

Vba 基于相邻单元格中的值复制单元格值,vba,excel,Vba,Excel,我有一个漂亮的Excel文件,可以自动将CSV文件中的值导入到我的工作表中,数据粘贴在我工作表的第一个空行中 问题是数据可以来自3个不同的来源,比如G列中填充了1、2或3 基于上述列中的值,我想将该行的其他值粘贴到不同工作表中特定范围内的第一个空单元格中。图纸名称取决于C列中的值,为此我创建了以下代码: Sub Lastcell() Dim LR As String Dim SheetName As String LR = Cells(Rows.Count, "B").End(xlUp).Row

我有一个漂亮的Excel文件,可以自动将CSV文件中的值导入到我的工作表中,数据粘贴在我工作表的第一个空行中

问题是数据可以来自3个不同的来源,比如G列中填充了1、2或3

基于上述列中的值,我想将该行的其他值粘贴到不同工作表中特定范围内的第一个空单元格中。图纸名称取决于C列中的值,为此我创建了以下代码:

Sub Lastcell()
Dim LR As String
Dim SheetName As String
LR = Cells(Rows.Count, "B").End(xlUp).Row
SheetName = Range("C" & LR).Value
If SheetExists(SheetName) Then
    Else
        Sheets.Add(After:=Sheets(Sheets.Count)).name = SheetName
    End If
End Sub

Function SheetExists(SheetName As String, Optional Wb As Workbook) As Boolean
    If Wb Is Nothing Then Set Wb = ThisWorkbook
    On Error Resume Next
    SheetExists = (LCase(Wb.Sheets(SheetName).name) = LCase(SheetName))
    On Error GoTo 0
End Function
所以我知道要复制到哪个工作表,现在我想选择它要复制到哪一行

比如说,如果G列最后一个单元格中的值是1,我想从C5开始将整行复制到C行的第一个空单元格

如果G列最后一个单元格中的值为2,我想将整行复制到H行的第一个空单元格,从H5开始

如果G列最后一个单元格中的值是3,我想将整行复制到M行的第一个空单元格,从M5开始


我的问题是:如何根据单元格的值选择不同的粘贴范围。单元格值为1,粘贴到列A中的最后一个空单元格值为2,粘贴到列B中的最后一个空单元格值为3,粘贴到列C中的最后一个空单元格?

类似的内容

Sub tgr()

    Dim wb As Workbook
    Dim wsData As Worksheet
    Dim wsDest As Worksheet
    Dim LR As Long, NR as long
    Dim DestCol As String

    Set wb = ActiveWorkbook
    Set wsData = wb.ActiveSheet
    LR = wsData.Cells(wsData.Rows.Count, "G").End(xlUp).Row

    On Error Resume Next
    Set wsDest = wb.Sheets(wsData.Cells(LR, "C").Value)
    On Error GoTo 0
    If Not wsDest Is Nothing Then
        Select Case wsData.Cells(LR, "G").Value
            Case 1: DestCol = "C"
            Case 2: DestCol = "H"
            Case 3: DestCol = "M"
        End Select

        'Destination sheet and columns are now defined
        'Copy over what you want to the destination
        NR = wsDest.Cells(wsDest.Rows.Count, DestCol).End(xlUp).Row
        If NR < 5 Then NR = 5
        wsDest.Cells(NR, DestCol).Resize(, 6).Value = wsData.Cells(LR, "A").Resize(, 6).Value
    End If

End Sub

您的问题是什么?如何根据单元格的值选择不同的粘贴范围。单元格值为1,粘贴到列A中的最后一个空单元格值为2,粘贴到列B中的最后一个空单元格值为3,粘贴到列CSo中的最后一个空单元格现在工作得非常完美,谢谢!如果可能的话,我想复制A-F列。此外,如何开始复制到目标工作表中的第5行或第6行?无法理解如何在此情况下将范围放在ws.Dest中。wsDest.CellswsDest.Rows.Count,DestCol.EndxlUp.offset1.Value=wsData.RangeA&LR,F&LR.values就像一个魔咒!我刚刚在最后一行添加了.offset1以使用下一个空单元格,而不是不断覆盖第五个单元格。wsDest.cellsr,DestCol.Resize,6.offset1.Value=wsData.cellsr,A.Resize,6.Value谢谢!