我在一張表(“P1-FR1”)的同一列(H27:O27)中有一組資訊,并想將單個值粘貼到另一張表(AQ6:AX6)(“übersicht GESAMT”)
我正在嘗試使用 For 回圈,但值只是一個接一個地復制(在同一個單元格中),而不是在每個單元格中復制一個。這是我的代碼:
Sub CopyValues()
Dim i As Long
Dim j As Long
Dim Wert As Long
For i = 8 To 14
Wert = Sheets("P1-FR1").Cells(27, i)
For j = 43 To 50
Sheets("übersicht GESAMT").Cells(6, j) = Wert
Next j
Next i
End Sub
uj5u.com熱心網友回復:
在這種情況下,您根本不需要雙For回圈。一個簡單的.Value副本就可以了。下面的代碼顯示了兩個示例,它們使用不同的方式來完成您想要的。(提示:它總是有助于我非常清楚我如何命名變數,它有助于跟蹤所有資料的來去處)
Option Explicit
Sub CopyTheValues()
Dim datenQuelle As Range
Dim datenZiel As Range
Set datenQuelle = ThisWorkbook.Sheets("P1-FR1").Range("H27:O27")
Set datenZiel = ThisWorkbook.Sheets("übersicht GESAMT").Range("AQ6:AX6")
'--- method 1 - works because the ranges are the same size and shape
datenZiel.Value = datenQuelle.Value
'--- method 2 - for loops
' index starts at 1 because the Range is defined above
' (and we don't care what rows/columns are used)
Dim j As Long
For j = 1 To datenQuelle.Columns.Count
datenZiel.Cells(1, j).Value = datenQuelle.Cells(1, j).Value
Next i
End Sub
uj5u.com熱心網友回復:
按分配復制
Option Explicit
Sub CopyValuesNoLoop()
ThisWorkbook.Worksheets("übersicht GESAMT").Range("AQ6:AX6").Value _
= ThisWorkbook.Worksheets("P1-FR1").Range("H27:O27").Value
End Sub
Sub CopyValuesQuickFix()
Dim j As Long: j = 43
Dim i As Long
For i = 8 To 14
ThisWorkbook.Worksheets("übersicht GESAMT").Cells(6, j).Value _
= ThisWorkbook.Worksheets("P1-FR1").Cells(27, i).Value
j = j 1
Next i
End Sub
uj5u.com熱心網友回復:
for 回圈的嵌套導致了您的問題。它導致第一個作業表中的每個單元格被復制到第二個作業表上的所有單元格。
您只需要一個回圈來執行復制。像這樣的東西應該作業。
Sub CopyValues()
Dim i As Long
For i = 8 To 15
Sheets("übersicht GESAMT").Cells(6,i 35) = Sheets("P1-FR1").Cells(27,i)
Next i
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/456325.html
下一篇:檢查組中單元格中的值是否為“是”
