Vba 在一个变量中设置两个不相关的范围

Vba 在一个变量中设置两个不相关的范围,vba,excel,variables,range,runtime-error,Vba,Excel,Variables,Range,Runtime Error,我有两个不相关的范围(С3:D5,F3:G5)。我想在一个变量(A)中设置它们。 弹出错误“1004”。有可能吗?如果是的话,怎么做 Sub пг() Dim book1 As Workbook Dim book2 As Workbook Dim A As String 'C3:D5 'F3:G5 A = "C3:D5&F3:G5" Set book1 = Workbooks.Open("E:\Super

我有两个不相关的范围(С3:D5,F3:G5)。我想在一个变量(A)中设置它们。 弹出错误“1004”。有可能吗?如果是的话,怎么做

     Sub пг()
     Dim book1 As Workbook
     Dim book2 As Workbook
     Dim A As String

    'C3:D5
    'F3:G5

     A = "C3:D5&F3:G5"

     Set book1 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Процесс создания\Индекс формы команды\Вспомогательные проги\пг\1.xlsx")
     Set book2 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Процесс создания\Индекс формы команды\Вспомогательные проги\пг\2.xlsx")

    'по листам

     book1.Worksheets("Лист1").Activate
     Range("" + A + "").Copy
     book2.Worksheets("Лист1").Activate
     Range("" + A + "").Select
     Selection.PasteSpecial Paste:=xlPasteAll


     book1.Close


     End Sub

复制/粘贴在非连续范围内不起作用。您需要分两个步骤来完成:

Sub пг()
    Dim book1 As Workbook
    Dim book2 As Workbook

    Set book1 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Процесс создания\Индекс формы команды\Вспомогательные проги\пг\1.xlsx")
    Set book2 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Процесс создания\Индекс формы команды\Вспомогательные проги\пг\2.xlsx")

    'по листам
    book1.Worksheets("Лист1").Range("C3:D5").Copy book2.Worksheets("Лист1").Range("C3:D5")
    book1.Worksheets("Лист1").Range("F3:G5").Copy book2.Worksheets("Лист1").Range("F3:G5")

    book1.Close
End Sub

复制/粘贴在非连续范围内不起作用。您需要分两个步骤来完成:

Sub пг()
    Dim book1 As Workbook
    Dim book2 As Workbook

    Set book1 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Процесс создания\Индекс формы команды\Вспомогательные проги\пг\1.xlsx")
    Set book2 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Процесс создания\Индекс формы команды\Вспомогательные проги\пг\2.xlsx")

    'по листам
    book1.Worksheets("Лист1").Range("C3:D5").Copy book2.Worksheets("Лист1").Range("C3:D5")
    book1.Worksheets("Лист1").Range("F3:G5").Copy book2.Worksheets("Лист1").Range("F3:G5")

    book1.Close
End Sub
另一种选择

Sub Demo()
    Dim book1 As Workbook, book2 As Workbook
    Dim rng

    Set book1 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Процесс создания\Индекс формы команды\Вспомогательные проги\пг\1.xlsx")
    Set book2 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Процесс создания\Индекс формы команды\Вспомогательные проги\пг\2.xlsx")

    For Each rng In Range("C3:D5,F3:G5").Areas
        book2.Worksheets("Лист1").Range(rng.Address).Value = book2.Worksheets("Лист1").Range(rng.Address).Value
    Next rng
End Sub
注意:以上代码只会粘贴值。

另一个选项

Sub Demo()
    Dim book1 As Workbook, book2 As Workbook
    Dim rng

    Set book1 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Процесс создания\Индекс формы команды\Вспомогательные проги\пг\1.xlsx")
    Set book2 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Процесс создания\Индекс формы команды\Вспомогательные проги\пг\2.xlsx")

    For Each rng In Range("C3:D5,F3:G5").Areas
        book2.Worksheets("Лист1").Range(rng.Address).Value = book2.Worksheets("Лист1").Range(rng.Address).Value
    Next rng
End Sub

注意:上面的代码只会粘贴值。

A=“C3:D5&F3:G5”
应该是
A=“C3:D5,F3:G5”
,但复制/粘贴不会在非连续范围内工作。只需进行两次复制/粘贴。
A=“C3:D5&F3:G5”
应该是
A=“C3:D5,F3:G5”
,但复制/粘贴在非连续范围内不起作用。只需复制/粘贴两次。我也在观看;)我终于得到了Excel VBA金徽章,现在我有了“力量”:@ShaiRado No evil mwahaha?很明显,你只是假装是一个仁慈的暴君,并隐藏你接管世界的实际计划。哈哈,这是mwa,mwa,mwaha,mwaha。。。等等(你明白了)我也在看;)我终于得到了Excel VBA金徽章,现在我有了“力量”:@ShaiRado No evil mwahaha?很明显,你只是假装是一个仁慈的暴君,并隐藏你接管世界的实际计划。哈哈,这是mwa,mwa,mwaha,mwaha。。。依此类推(你得到它)我给+1,但你把书的顺序颠倒了,应该是
book2..=book1…
我给了+1,但是你把书的顺序颠倒了,应该是
book2..=第1册…