2016-03-29 23 views
0

Çalışma Kitabımın 2 Sayfasının yeni bir sütununda, Sayfa2'deki üç sütunu birleştirmek için Do While (Dön) döngüsünü çalıştırmaya çalışıyorum, ikinci çalışma sayfamı nasıl referans gösterdiğimi düşünüyorum. İlk sayfadaki bu kodu çalıştırdığımda bana olumlu sonuçlar verir, herhangi bir yardım çok takdir edilecektir.Excel Çalışma Kitabı'ndaki ikinci sayfadaki çalışma döngüsü VBA ile Çalıştırılıyor

ActiveWorkbook.Worksheets("Sheet2").Activate 

Dim noSep As String 
noSep = "" 

Cells(1, 3) = col1 
Cells(1, 30) = col2 
Cells(1, 32) = col3 
Cells(1, 63) = colconcatenated 

x = 2 

Do While Worksheets("Sheet2").Cells(x, col1) <> "" 
Cells(x, coloncatenated) = Cells(x, col1) & noSep & Cells(x, col2) & noSep & Cells(x, col3) 
x = x + 1 
Loop 
Columns("BK:BK").EntireColumn.AutoFit 

cevap

1

Bu sorunuza gelen söylemek zor, ama genel olarak, bir defada birden fazla levha ile çalışıyorsanız, siz Hücreleri için başvurular tüm hak etmelidir/belirtmek için bu sayfalarda Aralıkları hangi levha ile çalışıyorsun.

Aksi taktirde, Excel, hangi sayfanın etkin olduğuna dayalı olarak, yukarıdaki kodunuzda Sayfa 2 olan tahmininizi tahmin etmeye çalışacaktır. Eğer bir Dim olabilir, Alternatif

Worksheets("Sheet1").Cells(1,3) = col1 

:

Yani, örneğin, Yaprak 1 tarihinde bir hücreye başvurmak için (. Üst ActiveSheet olarak ayarlar en ActiveWorkbook.Worksheets ("Sayfa2") etkinleştirin) kodun daha kolay okunabilmesini sağlayan iki sayfaya atıfta bulunmak için çift değişkenler:

Dim shtA as Worksheet 
Dim shtB As Worksheet 

Set shtA = Sheets("Sheet1") 
Set shtB = Sheets("Sheet2") 

shtA.Cells(1, 3) = col1 

Yardım edin!

+0

Şimdi bununla uğraşacağım, teşekkürler! – 1up

0

Temelde yeniden oluşturup önceki devten gelen tüm gereksiz kodları yok etmek zorunda kaldım. İlk başladığımda, etkin çalışma sayfası olmadığında çalışacak sayfayı belirtmek, sorunumu çözdü. Makromum mükemmel çalışıyor.

Başlamak için teşekkürler Leowyn.

İlgili konular