簡體   English   中英

將一列的單元格值寫入其他單元格指定的位置

[英]Write cell value from one column to a location specified by other cells

我在A列中有一個要寫入單獨工作表的值,有列和行號指定了我要將該值寫在與A列中同一行的位置。

例如,A8中的值在Q8中具有列號“ 2”,在S8中具有行號“ 118”。 所以我想在新工作表中編寫一個公式,將A8的值放入新工作表的單元格B118中。 並且隨着第一頁的填寫,這與A:A中的所有值一起下降。

我已經嘗試過在這里使用sumifs公式來執行此操作,但效果並不理想;

=IF(SUMIFS(sheet1!$A:$A,sheet1!$Q:$Q,COLUMN(B8),sheet1!$S:$S,ROW(B8))," ",sheet1!$A:$A)

如果希望新工作表中的公式引用Sheet1中單元格 ,則:

Sub marine()
   Dim cl As Long, rw As Long, source As String

   cl = Range("Q8").Value
   rw = Range("S8").Value

   Sheets("new").Cells(rw, cl).Formula = "=Sheet1!A8"

End Sub

如果您只是想將A8轉移到新表中,則:

Sub marine2()
   Dim cl As Long, rw As Long, source As String

   cl = Range("Q8").Value
   rw = Range("S8").Value

   Sheets("new").Cells(rw, cl).Value = Range("A8").Value

End Sub

編輯#1:

這是一個可以處理整個專欄的版本:

Sub marine3()
   Dim cl As Long, rw As Long, source As String
   Dim i As Long, N As Long

   N = Cells(Rows.Count, "A").End(xlUp).Row

   For i = 8 To N
      cl = Range("Q" & i).Value
      rw = Range("S" & i).Value
      If cl <> 0 And rw <> 0 Then
         Sheets("new").Cells(rw, cl).Value = Range("A" & i).Value
      End If
   Next i
End Sub

這是我的答案。

Sub movindData()
    'take all the data from sheet1 and move it to sheet2
    Dim sht2 As Worksheet
    Dim r
    Dim c
    Dim i
    Dim rng As Range
    Dim A 'for each value in column A
    Dim Q 'for each value in column Q (the column)
    Dim S 'for each value in column S (the row)


    r = Range("A1").End(xlDown).Row 'the botton of columns A, the last row
                                    'I take the inicial cells as a A1, but you
                                    'can change it as you need.
    c = 1 'the column A

    Set rng = Range(Cells(1, 1), Cells(r, c)) 'this takes just the range with the data in columns A
    Set sht2 = Sheets("Sheet2") 

    For Each i In rng
        A = i.Value 'Store the value of every cell in column A
        Q = i.Offset(0, 16).Value 'Store the value of every cell in column Q (the destination column in sheet2)
        S = i.Offset(0, 18).Value 'Store the value of every cell in column s (the destination row in sheet2)
        sht2.Cells(Q, S).Value = A
    Next i
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM