2016-07-14 354 views
-2

嗨,我是這個論壇的新手。複製範圍並粘貼到另一個工作表上的特定單元格vba

  1. 我想從sheet 1和過去sheet 2開始從a10在10個細胞的增加複製範圍a1:a10進入細胞。即:

    • sheet1:a1的內容在sheet2:a10;
    • 內容sheet1:a2sheet2:a20;
    • sheet1:a3的內容在sheet2:a30;
    • ...等等...

我知道代碼簡單範圍複製和粘貼如下

Sub Copy(
Dim CopyFrom As Range 

Set CopyFrom = Sheets("Sheet1").Range("A2 : A10") 
Sheets("Sheet2").Range("A1").Resize(CopyFrom.Rows.Count).Value = CopyFrom.Value 

End Sub 

請幫助編輯上面的代碼,適合我需要。

  1. 根據單元格中的值隱藏行數。即,如果單元格a1包含10個和細胞a2含有50,應該隱藏行10〜50

我可以通過設置一個值作爲固定的,主叫從小區中的一個值,但不能兩者都做上述。

Sub AUTOHIDE_ROWS_307() 
' 
Application.ScreenUpdating = False 
Sheets("sheet1").Select 
Dim Cval As Variant 
Dim Rng1 As Range 
Cval = ActiveSheet.Range("a1").Value 
Set Rng1 = ActiveSheet.Range("A50:N" & Cval) 
Rng1.Activate 
Selection.EntireRow.Hidden = True 
Application.ScreenUpdating = True 
End Sub 

請幫助編輯以上,以滿足我的需求。

在此先感謝。

+0

歡迎堆棧溢出。 SO不是我的服務代碼,也不是教我編碼服務。如果您現有的代碼無法正常工作,請使用編輯功能將其發佈到原始文章中,並解釋代碼的錯誤行爲,並幫助克服特定的錯誤。 –

+0

我已經添加了代碼請求,部分爲我工作... @ ScottCraner –

+0

不,我們不打算*編輯上面*以滿足您的需求。 **您**應該編輯代碼以滿足您的需求。如果遇到問題,您可以在此處發帖,解釋您遇到的問題,包含**代碼**的相關部分,並詢問關於該代碼的特定問題。這不是代碼編輯或重寫服務,我們也不是任何人的個人編碼助手。我們很樂意提供幫助,但我們沒有爲您做。 –

回答

0

1.

Dim I as Integer 
For I = 1 To 10 
    Sheets("Sheet2").Cells(1, I * 10) = Sheets("Sheet1").Cells(1, I) 
Next 

2.

With ActiveSheet 
    .Range("A" & .Range("A1").Value, "A" & .Range("A2").Value).EntireRow.Hidden = True 
End With 
+0

上述解決方案對於隱藏行看起來不行,它給編譯錯誤,語法錯誤 –

+0

對不起,一個括號過多,我一定在我之前完成了我的複製/粘貼到答案中當我測試它時發現了這個錯誤。 – YowE3K

+0

感謝幫助兩個答案...作品像魅力......許多被認可的@ YowE3K –

0

我知道這不是這個論壇的目的,但是你很迷茫,會給你一些你可以用作起點的東西。

Sub doThatCopy() 
    'Create your variables 
    Dim myFormerSheetRow, myDestinationSheetRow, myFormerColumn, myDestinationColumn As Integer 
    Dim myFormerSheetName, myDestinationSheetName As String 

    'Setting the variables first values 
    myFormerColumn = 1 ' 1 = A, 2 = B... 
    myDestinationColumn = 3 '3 = C 
    myFormerSheetRow = 0 ' This row, doesn't exists, but we'll increment it before first use 
    myDestinationSheetRow = 1 

    myFormerSheetName = "Sheet1" 
    myDestinationSheetName = "Sheet2" 

    For i = 1 To 10 
     'You could use "myFormerSheetRow = i" instead of the row below, but I'll leave it this way to be more understandable for you 
     myFormerSheetRow = myFormerSheetRow + 1 
     myDestinationSheetRow = myFormerSheetRow * 10 
     ActiveWorkbook.Worksheets(myDestinationSheetName).Cells(myDestinationSheetRow, myDestinationColumn).Value = ActiveWorkbook.Worksheets(myFormerSheetName).Cells(myFormerSheetRow, myFormerColumn).Value 
    Next i 

    MsgBox ("Success!") 
End Sub 
+0

感謝幫助...很多認可的@Diogopaim –

相關問題