[英]Copy non-merged cells from one worksheet to merged cells in another using a loop
我已經做了很多嘗試,都失敗了,並且在互聯網上尋找解決方案,但是我似乎無法確切地知道如何解決我的問題。 現在我希望你們能幫助我。
我正在嘗試從一個工作表(ws)復制單元格區域(非合並)到另一個工作表(omk)中包含合並單元格的區域。 我必須在20個范圍內執行此操作,因此我正在使用循環。 我到目前為止編寫的代碼粘貼在下面:
Dim omk, ws As Worksheet
Dim a, b, i, y, z As Integer
Dim x As Range
Set omk = Sheets("Omkostningsmodel")
Set ws = ActiveSheet
omk.Activate
a = 173
i = 187
For Each cell In Range("C187", "C206")
z = 3
b = 3
For Each x In Range(Cells(i, z), Cells(i, 22))
x.Value = ws.Cells(a, b)
z = z + 1
b = b + 1
If z = 4 Or z = 13 Or z = 16 Then
z = z + 1
End If
Next x
a = a + 1
i = i + 1
Next cell
我的問題是,列c和d(3和4)在工作表“ omk”中合並,因此我試圖使第二個循環跳過列d,同時在此情況下將工作表“ ws”中的列d保持“鎖定”發生。 但是,當我運行代碼時,似乎工作表“ ws”中的d列未鎖定?
我不確定,我已經足夠清楚了,所以如果您不能解決我的問題,請告訴我。
謝謝 :)
當您具有合並的列時,可以使用offset方法在下一列中填充值。 就像是:
Dim omk as Worksheet, ws As Worksheet
Dim a as Integer, b As Integer, i As Integer
Dim y As Integer, z As Integer, Coloffset As Integer
Dim x As Range, cell As Range
Set omk = Sheets("Omkostningsmodel")
Set ws = ActiveSheet
omk.Activate
a = 173
i = 187
For Each cell In Range("C187", "C206")
z = 3
b = 3
Coloffset = 0
For Each x In Range(Cells(i, z), Cells(i, 22))
If x.Column = 4 Or x.Column = 13 Or x.Column = 16 Then
Coloffset = Coloffset + 1
End If
x.Offset(0, Coloffset).Value = ws.Cells(a, b)
b = b + 1
Next x
a = a + 1
i = i + 1
Next cell
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.