2016-04-14 7 views
0

Bir sütun için seçilen bir X için belirli hücre değerini değiştiren, Excel Visual Basic'te kullanıcı formu için işlev yapıyordum. Bununla birlikte, kullanıcı oluşturulan kullanıcı formundaki değeri her değiştirdiğinde, program, bu sütuna ve X değerine ilişkin her bir hücrede bulunan verileri çoğaltır. Örnek: "A" sütununa sahip olduğum durumda Marie üç kez, bir satır 3, 7, 10 ve "B" sütunu için kullanıcı formu girdim merhaba. Her satır için çıktı aynı "merhaba" olacaktır. Fakat her bir değeri bağımsız olarak tekrarlanan değerler sütununda "A" olarak değiştirmek istiyorum.Aynı satırda x değişken için Excel Visual Basic için hücre değeri nasıl değiştirilir?

userform için kod:

Private Sub btnSubmit_Click() 
Dim erow As Long 
Dim ws As Worksheet 
Dim lastrow As Long 
Dim count As Integer 

Set ws = ThisWorkbook.Sheets("Table") 

lastrow = Sheets("Table").Cells(Rows.count, 1).End(xlUp).Row 
count = 0 
For x = 2 To lastrow 


If Sheets("Table").Cells(x, 1) = Me.cmbEmp Then 
ws.Cells(x, 3) = Me.ldlcolor 
ws.Cells(x, 30) = (Me.ldlp) 
count = count + 1 

End If 
If Sheets("Table").Cells(x, 3) = Me.cmbEmp Then 
ws.Cells(x, 1) = Me.ldlname 
ws.Cells(x, 14) = (Me.ldlI) 
count = count + 1 
End If 

Next x 

Me.Hide 
End Sub 

cevap

0

sorunu size tabakanın her satırda döngü olmasıdır ve bir değer farklı satırlarda tekrar varsa, her zaman aynı olacaktır. Değiştirmek istediğiniz yinelenen değerlerden hangisinin daha iyi bir yolunu bulmanız gerekecektir. Örneğin, bu kod olacak o ("Marie") verilerinizin İLK oluşumu bulana kadar döngü: ya o zaman, değiştirmek istediğiniz "marie" oluşumu bilmiyorsanız

Dim bolFound As Boolean 
bolFound = False 
While Not bolFound 
    If Sheets("Table").Cells(x, 1) = Me.cmbEmp Then 
     ws.Cells(x, 3) = Me.ldlcolor 
     ws.Cells(x, 30) = (Me.ldlp) 
     count = count + 1 
     bolFound = True 
    End If 

    If Sheets("Table").Cells(x, 3) = Me.cmbEmp Then 
     ws.Cells(x, 1) = Me.ldlname 
     ws.Cells(x, 14) = (Me.ldlI) 
     count = count + 1 
     bolFound = True 
    End If 
Wend 

Yinelenen verileri kaldırmak veya satır 3 "marie" olarak "marie" ayırt etmek için bir yol anlamaya gerek var.

+0

Teşekkürler, sadece kodunuzu denedim, ancak sonsuz bir döngü yapmak sonra program çökmesine neden olur. –

+0

Sorunu çözdüm, teşekkürler dostum XD ismini değiştirmenin bir yolunu buldum. –

İlgili konular