2016-08-04 4 views
0

У меня есть проблема, в то время как triyng очищает всю строку данных из моего списка с помощью кнопки, идея в том, что у меня есть текстовое поле, в котором находится источник «x», и я хочу, чтобы очистить текст от этого листа, когда я выбираю элемент из списка, когда я нажимаю кнопку.Очистка строки при выборе элемента в текстовом поле, в текстовом поле и в исходном листе

это то, что я пытался:

Dim ws4 As Worksheet 
Set ws4 = Worksheets("ALCANCES") 




With ws4 
Dim r1 As Range 
Set r1 = ws4.Range("A1:A200") 
For Each c1 In r1 
    If c1.Value = listAlc.Value Then 
    c1.Font.Bold = True 
     With c1 
     c1.EntireRow.Clear 
     End With 
    End If 
Next c1 
End With 

этот код работает отлично, если вместо того, чтобы ясно вхожу Удалить всю строку, но я не хочу, чтобы удалить строку, я просто хочу, чтобы очистить информация об этом, и этот код иногда это делает, но иногда он очищает выбранную строку и все выше нее.

Заранее спасибо.

+0

Что такое 'listAlc'? – BruceWayne

+0

Кроме того, почему вы смелее 'c1', когда вы просто собираетесь его очистить? Кроме того, вам не нужен ваш оператор 'With', поскольку вы используете' c1.EntireRow.Clear'. – BruceWayne

+0

listAlc его имя текстового поля, и по другим вопросам я на самом деле действительно новичок в VBA и просто искал код в Интернете, когда мне это нужно, поэтому я не совсем уверен, как именно работает код. просто попробовать проб и ошибок. –

ответ

0

EDIT: наконец-то нашел решение, теперь мне просто нужно, чтобы он приблизился ко всей строке, где слово hehe ... но теперь я могу, наконец, очистить данные, которые я выбираю в текстовом поле, когда я использую 2 свойства текстового поля: BoundColum и ControlSource, и этот код:

Private Sub ButAlbo_Click() 

Dim ws4 As Worksheet 
Set ws4 = Worksheets("ALCANCES") 
Dim fnd As Variant 
Dim rplc As Variant 


iRow = ws4.Range("d1").Value 

fnd = iRow 

rplc = Clear 



    ws4.Cells.Replace what:=fnd, Replacement:=rplc, _ 
    LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _ 
    SearchFormat:=False, ReplaceFormat:=False 






End Sub 
0

в случае, если кто нуждается помогает с этим, я, наконец, решил это.

свойства ListBox: Имя (lisAlcan) RowSource ALCANCES A1:! C300 boundcolum 3 columcount 2 ControlSource ALCANCES D1

, а затем я сделал две кнопки один, чтобы добавить информацию, а другой, чтобы удалить эту информацию из списка и из листа:

Private Sub butAlgr_Click() 

If txtAlcan.Value = "" Then 
MsgBox "Ingrese el Alcance", vbOKOnly 

Exit Sub 
End If 







Dim LastRow As Long, ws As Worksheet 

    Set ws = Sheets("ALCANCES") 

    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1 'Finds the last blank row 
LastRow = ws.Range("B" & Rows.Count).End(xlUp).Row + 1 'Finds the last blank row 
LastRow = ws.Range("C" & Rows.Count).End(xlUp).Row + 1 'Finds the last blank row 


    ws.Range("A" & LastRow).Value = "*" 'Adds the TextBox3 into Col A & Last Blank Row 
    ws.Range("B" & LastRow).Value = txtAlcan.Text 'Adds the ComboBox1 into Col B & Last Blank Row 

ws.Range("C" & LastRow).Value = LastRow 





'clear the data 
Me.txtAlcan.Value = "" 
Me.txtAlcan.SetFocus 

MsgBox "Datos registrados", vbOKOnly 


End Sub 

и кнопки стирания:

Private Sub ButAlbo_Click() 

Dim ws4 As Worksheet 
Set ws4 = Worksheets("ALCANCES") 
Dim fnd As Variant 
Dim rplc As Variant 


iRow = ws4.Range("d1").Value 
ws4.Cells(iRow, 1).Value = Clear 
ws4.Cells(iRow, 2).Value = Clear 
ws4.Cells(iRow, 3).Value = Clear 

End Sub 

 Смежные вопросы

  • Нет связанных вопросов^_^