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

时间:2017-09-16 06:42:59

标签: vba excel-vba variables range runtime-error

我有2个不相关的范围(С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

2 个答案:

答案 0 :(得分:2)

复制/粘贴不适用于非连续范围。您需要分两步完成:

public class TestActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        /*
        * create 4 threads to do 4 operations
        * */
        Thread thread1 = new Thread(new Runnable() {
            @Override
            public void run() {} // do operation 1
        });
        Thread thread2 = new Thread(new Runnable() {
            @Override
            public void run() {} // do operation 2
        });
        Thread thread3 = new Thread(new Runnable() {
            @Override
            public void run() {} // do operation 3
        });
        Thread thread4 = new Thread(new Runnable() {
            @Override
            public void run() {} // do operation 4
        });

        thread1.start();
        thread2.start();
        thread3.start();
        thread4.start();

    }
}

答案 1 :(得分:2)

另一个选择

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

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