Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Excel - Fatal编程技术网

Vba 向与循环对应的单元格添加一致的值并粘贴特殊值

Vba 向与循环对应的单元格添加一致的值并粘贴特殊值,vba,loops,excel,Vba,Loops,Excel,我有代码将表2中的数据发布到表1中A、B和C列下的第一个空白单元格中。这段代码非常有效。 但是,在我放置这些单元格的地方,我需要一个1000的值进入D列,并在a、B和C结束时结束。另外,对于格式化问题,我需要将其作为PasteValue。 我已将代码粘贴到下面。谢谢你的帮助 Sub NextTryThis() '====Code here works=== LastRow2 = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row Blank

我有代码将表2中的数据发布到表1中A、B和C列下的第一个空白单元格中。这段代码非常有效。 但是,在我放置这些单元格的地方,我需要一个1000的值进入D列,并在a、B和C结束时结束。另外,对于格式化问题,我需要将其作为PasteValue。 我已将代码粘贴到下面。谢谢你的帮助

Sub NextTryThis()
'====Code here works===
LastRow2 = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row
BlankRow = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row + 1
BlankRowB = Sheets("Sheet1").Cells(Rows.Count, "B").End(xlUp).Row + 1
BlankRowC = Sheets("Sheet1").Cells(Rows.Count, "C").End(xlUp).Row + 1
BlankRowD = Sheets("Sheet1").Cells(Rows.Count, "D").End(xlUp).Row + 1
For i = 2 To LastRow2
    Sheets("Sheet2").Range("A" & i).Copy
    Worksheets("Sheet1").Range("A" & BlankRow).PasteSpecial xlPasteValues
    BlankRow = BlankRow + 1
Next i
For i = 2 To LastRow2
    Sheets("Sheet2").Range("B" & i).Copy
    Worksheets("Sheet1").Range("B" & BlankRowB).PasteSpecial xlPasteValues
    BlankRowB = BlankRowB + 1
Next i
For i = 2 To LastRow2
    Sheets("Sheet2").Range("C" & i).Copy
    Worksheets("Sheet1").Range("C" & BlankRowC).PasteSpecial xlPasteValues
    BlankRowC = BlankRowC + 1
Next i

'========Here is my problem=====
Dim DivideBy As Integer
DivideBy = 1000

Worksheets("Sheet1").Select
    Range("D" & BlankRowD).Value = DivideBy

For i = BlankRowD To x '===x is denoting wherever A, B, and C stop==='
    Worksheets("Sheet1").Range("D" & BlankRowD).Copy
    Worksheets("Sheet1").Range("D" & i).PasteSpecial xlPasteValue
Next i


End Sub

像这样的东西应该适合你。设置要复制的范围非常有用,因为这样可以调整范围的行数和/或列数,这使得在D列中输入1000变得容易:

Sub NextTryThis()

    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim rngCopy As Range

    Set ws1 = ActiveWorkbook.Sheets("Sheet1")
    Set ws2 = ActiveWorkbook.Sheets("Sheet2")

    Set rngCopy = ws2.Range("A2", ws2.Cells(Rows.Count, "A").End(xlUp).Offset(, 2))
    If rngCopy.Row < 2 Then Exit Sub   'No data

    With ws1.Cells(Rows.Count, "A").End(xlUp).Offset(1)
        'Get just the values from rngCopy to the next blank row in ws1
        .Resize(rngCopy.Rows.Count, rngCopy.Columns.Count).Value = rngCopy.Value

        'Put the desired number in column D for the copied data rows
        .Offset(, 3).Resize(rngCopy.Rows.Count).Value = 1000
    End With

End Sub

在D中有合并的单元格吗?