Как изменить значение в ячейке в excel vba

We use VBA to automate our tasks in excel. The idea of using VBA is to connect the interface of excel with the programming. One of the very most connections between them is by changing the cell values. The change in cell value by programming shows the power of VBA. In this article, we will see how to set, get and change the cell value. 

Set Cell Value

Assigning a cell with a value can be achieved by very two famous functions in VBA i.e. Range and Cells function. 

Range Function in VBA

The range function helps access the cells in the worksheet. To set the cell value using the range function, we use the .Value

Syntax: Range(cell_name).Value = value_to_be_assinged. 

Set the value to a single cell

If you want to assign ’11’ to cell A1, then the following are the steps: 

Step 1: Use the Range function, in the double quotes type the cell name. Use .Value object function. For example, Range(“A1”).Value = 11

Applying-range-function

Step 2: Run your macro. The number 11 appears in cell A1

Running-macro

Set the value to multiple cells at the same time

Remember the days, when your teacher gives you punishment, by making you write the homework 10 times, those were the hard days, but now the effort has exponentially reduced. You can set a value to a range of cells with just one line of code. If you want to write your name, for example, “Arushi” 10 times, in the range A2 to A11. Use range function. Following are the steps: 

Step 1: Use the Range function, in the double quotes, write “Start_of_cell: End_of_cell”. Use .Value object function. For example, Range(“A2:A11”).Value = “Arushi”

Applying-range-function

Step 2: Run your macro. The text “Arushi” appears from cell A2 to A11 inclusive. 

Running-macro

Cells Function in VBA

The Cells function is similar to the range function and is also used to set the cell value in a worksheet by VBA. The difference lies in the fact that the Cells function can only set a single cell value at a time while the Range function can set multiple values at a time. Cells function use matrix coordinate system to access cell elements. For example, A1 can be written as (1, 1), B1 can be written as (1, 2), etc. 

Syntax: Cells(row_number, column_number).Value = value_to_be_assign

For example, you want to set the cell value to “Arushi cleared CA with Rank “, in cell B1. Also, set cell C1, to ‘1’. Following are the steps:

Step 1: Open your VBA editor. Use cells function, as we want to access cell B1, the matrix coordinates will be (1, 2). Type, Cells(1, 2).Value = “Arushi cleared CA with Rank” in the VBA code. 

Using-cell-functions

Step 2: To access cell C1, the matrix coordinates are (1, 3). Type, Cells(1, 3).Value = 1 in the VBA code. 

Accessing-cell-C1

Step 3: Run your macro. The required text appears in cell B1, and a number appears in C1. 

Running-macro

Setting Cell values by Active cell and the input box

There are other ways by which you can input your value in the cell in a worksheet. 

Active Cell 

You can set the cell value of a cell that is currently active. An active cell is the selected cell in which data is entered if you start typing. Use ActiveCell.Value object function to set the value either to text or to a number. 

Syntax: ActiveCell.Value = value_to_be_assigned

For example, you want to assign the active cell with a text i.e. “Arushi is practicing CA”, also want to change the color of the cell to yellow. Following are the steps: 

Step 1: Use the ActiveCell object to access the currently selected cell in the worksheet. Use ActiveCell.Value function object to write the required text. 

Using-active-cell-function

Step 2: Color the cell by using ActiveCell.Interior.Color function. For example, use vbYellow to set your cell color to yellow. 

Using-active.cell.interior.color-function

Step 3: Run your macro. The currently selected cell i.e. B1 has attained the requirements. 

Running-macro

Input Box

You can use the input box to set the cell value in a worksheet. The input box takes the custom value and stores the result. This result could further be used to set the value of the cell. For example, set the cell value of A1, dynamically by taking input, from the input box.

Following are the steps

Step 1: Open your VBA editor. A sub-procedure name geeks() is created. Use the Range function to store the value given by the input box. 

Using-range-function

Step 2: Run your Macro. A dialogue-box name Microsoft Excel appears. Enter the value to be stored. For example, “geeks for geeks”. Click Ok

Entering-value-to-be-stored

Step 3: Open your worksheet. In cell A1, you will find the required text is written. 

Text-written-in-A1

Get Cell Value

After setting the cell value, it’s very important to have a handsome knowledge of how to display the cell value. There can be two ways two get the cell value either print the value in the console or create a message box. 

Print Cell Value in Console

The console of the VBA editor is the immediate window. The immediate window prints the desired result in the VBA editor itself. The cell value can be stored in a variable and then printed in the immediate window. For example, you are given a cell A1 with the value ’11’, and you need to print this value in the immediate window. 

Following are the steps

Step 1: Press Ctrl + G to open the immediate window. 

Opening-immediate-window

Step 2: The cell value in A1 is 1

Value-in-A1

Step 3: Open your VBA editor. Declare a variable that could store the cell value. For example, Val is the variable that stores the cell value in A1. Use the Range function to access the cell value. After storing the cell value in the val, print the variable in the immediate window with the help of Debug.Print(val) function.

Printing-variable-in-immediate-window

Step 4: Run your macro. The cell value in A1 is printed in the immediate window. 

Running-macro

Print Cell Value in a Message Box 

A message box can also be used to show the cell value in VBA. For example, a random string is given in cell A1 of your string i.e. “Arushi studies in Hansraj”. Now, if you want to display the cell value in A1, we can use Message Box to achieve this. 

Text-present-in-A1

Following are the steps

Step 1: Open your VBA macro. Create a message box by using MsgBox. Use the Range(cell).Value function to access the cell value. 

Creating-a-message-box

Step 2: Run your macro. A message box appears, which contains the cell value of A1

Running-macro

Change Cell Values 

The value, once assigned to the cell value, can be changed. Cell values are like variables whose values can be changed any number of times. Either you can simply reassign the cell value or you can use different comparators to change the cell value according to a condition. 

By reassigning the Cell Value

You can change the cell value by reassigning it. In the below example, the value of cell A1 is initially set to 1, but later it is reassigned to 2

Following are the steps

Step 1: Open your VBA code editor. Initially, the value of cell A1 is assigned to 1. This initial value is printed in the immediate window. After that, we changed the value of cell A1 to 2. Now, if we print the A1 value in the immediate window, it comes out to be 2

Changing-value-in-cell

Step 2: The immediate window shows the output as 1 and 2. 

Immediate-window-shows-output

Changing cell value with some condition

We can use if-else or switch-case statements to change the cell value with some condition. For example, if your age is greater than 18 then you can drive else you cannot drive. You can output your message according to this condition. 

Following are the steps

Step 1: A code is written in the image below, which tells whether you are eligible for a driving license or not. If your age is greater than 18 then cell A1 will be assigned with the value, “You are eligible for the driving license”, else A1 will be assigned with “You are not eligible for driving license”. 

Text-assigned-to-A1

Step 2: Run your macro. An input box appears. Enter your age. For example, 19. 

Running-macro

Step 3: According to the age added the cell value will be assigned. 

Cell-value-assigned

Изменение значений других ячеек из пользовательской функции VBA Excel с помощью методов Range.Replace и Application.Volatile. Примеры кода.

В первых двух параграфах описано нетрадиционное использование процедуры Function, поэтому не применяйте его в серьезных проектах. Тестирование проводилось в Excel 2016.

Функция с методом Range.Replace

Пользовательская функция не предназначена для изменения значений ячеек, кроме той, в которой она расположена. Попытка присвоить какое-либо значение из функции другой ячейке приводит к неработоспособности функции и отображению в ячейке, где она расположена, сообщения «#ЗНАЧ!».

Но, как ни странно, внутри процедуры Function работает метод Range.Replace, которым мы воспользуемся для изменения значений других ячеек из пользовательской функции.

Пример 1
Эта функция заменяет значение ячейки Cell1 на значение ячейки Cell2 увеличенное на 100. Сама функция размещается в третьей ячейке, чтобы не возникла циклическая ссылка.

Function Primer1(Cell1 As Range, Cell2 As Range)

  Cell1.Replace Cell1, Cell2 + 100

End Function

В этом примере мы не присваиваем пользовательской функции значение, поэтому отображается значение по умолчанию – 0. Если объявить эту функцию как строковую: Function Primer1(Cell1 As Range, Cell2 As Range) as String, будет возвращена пустая строка.

Изменение значения ячейки C1 (Cell2) приведет к пересчету значения ячейки B1 (Cell1).

Попробуйте очистить или перезаписать ячейку B1 (Cell1), ничего не получится, так как функция Primer1 вновь перезапишет ее значением C1 (Cell2) + 100.

Метод Application.Volatile

Application.Volatile – это метод, который запускает пересчет функции при изменении значения любой ячейки рабочего листа, а не только той, которая присвоена объявленной в функции переменной. Метод Application.Volatile используется только в функциях.

Рассмотрим пересчет функции на следующем примере:

Пример 2

Function Primer2(Cell1 As Range, Cell2 As Range) As String

  Cell1.Replace Cell1, Cell2 + 100

  Range(«B2»).Replace Range(«B2»), Range(«C2») + Cell1

End Function

Эта функция будет пересчитываться только при изменении значений ячеек B1 и C1, присвоенных переменным Cell1 и Cell2. При изменении значения ячейки C2, значение ячейки B2 не изменится, так как не будет запущен пересчет функции Primer2.

Функция Primer2 начнет вести себя по-другому, если добавить в нее оператор Application.Volatile (переименуем ее в Primer3):

Пример 3

Function Primer3(Cell1 As Range, Cell2 As Range) As String

  Application.Volatile

  Cell1.Replace Cell1, Cell2 + 100

  Range(«B2»).Replace Range(«B2»), Range(«C2») + Cell1

End Function

Теперь при смене значения в ячейке C2, значение ячейки B2 тоже изменится.

В предыдущих примерах функциям не присваивалось конечное значение, чтобы показать, что такое возможно. При присвоении значения пользовательской функции следует следить за тем, чтобы не возникало циклических ссылок между ячейками с изменяемыми функцией значениями, в том числе и той, в которой размещена функция.

Безопасное использование функции

Если вам все-таки хочется в важном проекте VBA Excel с помощью одной пользовательской функции изменять значения нескольких ячеек, есть полностью безопасный вариант.

Он заключается в добавлении дополнительного аргумента в пользовательскую функцию, с помощью которого для каждой ячейки можно вывести отдельный результат. Функция размещается в каждой изменяемой ячейке.

В простых случаях для выбора можно использовать функцию Choose или, в более сложных, оператор If…Then…Else и оператор Select Case.

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

Function Primer4(Cell1 As Range, Cell2 As Range, a As Byte)

  On Error Resume Next

  Primer4 = Choose(a, Cell1 + Cell2, Cell1 Cell2, Cell1 * Cell2)

End Function

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

На следующем скриншоте представлены результаты вычисления функции в зависимости от значения аргумента a:

  1. В ячейке A1 вычисляется сумма значений ячеек B1 и C1 – аргумент a=1.
  2. В ячейке A2 вычисляется разность значений ячеек B2 и C2 – аргумент a=2.
  3. В ячейке A3 вычисляется произведение значений ячеек B3 и C3 – аргумент a=3.

Пример 5
Используем оператор If…Then…Else в сокращенном виде (If…Then…) для выбора способа вычисления функции в зависимости от значения дополнительного аргумента:

Function Primer5(Cell1 As Range, Cell2 As Range, a As Byte)

  If a = 1 Then Primer5 = Cell1 + Cell2

  If a = 2 Then Primer5 = Cell1 Cell2

  If a = 3 Then Primer5 = Cell1 * Cell2

End Function

Результаты будут те же, что и в четвертом примере.

Небольшая памятка по работе с макросами VBA Excel. Для вставки в код, измените название листа и диапазон ячеек на свой.

Добавить текст к значениям (в данном случае добавить слово «add» в начале ячеек):

1
2
3
For Each c In Worksheets("list1").Range("F7:F44").Cells 
  c.Value = "add" + CStr(c.Value)
Next

Добавить к значениям текст из соседней ячейки справа:

1
2
3
For Each c In Worksheets("list1").Range("F7:F44").Cells
  c.Value = CStr(c.Value) + " " + c.Cells(1, 2).Value
Next

Вывести строку обрезанную до 6 символов:

1
2
3
For Each c In Worksheets("list1").Range("J3:J175").Cells
  c.Value = Left(c.Value, 6)
Next

Убрать все после первого пробела:

1
2
3
4
5
6
For Each c In Worksheets("list1").Range("J3:J175").Cells
  c.Value = CStr(c.Value) + " "
  spacePos = inStr(1, c.Value, " ")
  artLen = spacePos - 1
  c.Value = Left(c.Value, artLen)
Next

Убрать все до первого пробела, затем убрать пробелы в начале строки:

1
2
3
4
5
For Each c In Worksheets("list1").Range("D2:D79").Cells
  spacePos = InStr(1, c.Value, " ")
  c.Value = Mid(c.Value, spacePos)
  c.Value = LTrim(c.Value)
Next

Если здесь нет нужного вам макроса, посмотрите ещё часть 2.

Homamilae

1 / 1 / 0

Регистрация: 14.11.2010

Сообщений: 48

1

Скрипт, который меняет значение ячейки на другое

04.10.2013, 13:31. Показов 5042. Ответов 6

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Подскажите пожалуйста, у меня есть файл. на листе 1 есть список элементов в столбце B, на листе 2 в столбце B тот же список и в столбце С краткие наименования этих элементов. Мне необходимо создать скрипт, который просматривает столбец B в листе 1 файла Excel, ищет соответствие в столбце B листа 2 и заменяет это значение в листе 1 на соответствующее из столбца С листа 2. Я впервые работаю с VBA. Что мне необходимо сделать?

Спасибо большое за любую помощь!

Добавлено через 3 часа 17 минут
Начала писать скрипт, есть вопросы:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Dim j As Integer 
Dim i As Integer 
     For i = 1 To "конец строк" 
 
         For j = 1 To "конец строк" 
 
              If "условие, кот. сравнивает Лист1.Cells(i, 1).Value = Лист2.Cells(j, 1).Value" 
              Лист1.Cells(i, 1).Value = Лист2.Cells(j, 1+1).Value 
              End If 
 
          Next j 
    Next i

Не могу разобраться как правильно записать «конец строк» и «условие, которое сравнивает Лист1.Cells(i, 1).Value = Лист2.Cells(j, 1).Value»



0



Kubuntovod

Эксперт NIX

2670 / 786 / 176

Регистрация: 14.01.2013

Сообщений: 3,676

04.10.2013, 15:03

2

(if a = b) — это и есть условие. В Вашем случае, «если ячейка такая-то равна ячейке такой-то …».
«Конец строк» можно ловить так:

Visual Basic
1
ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row

На активном листе ищется последняя заполненная ячейка в столбце «B».



1



1 / 1 / 0

Регистрация: 14.11.2010

Сообщений: 48

04.10.2013, 16:16

 [ТС]

3

Спасибо за помощь!

Dim j As Integer
Dim i As Integer
For i = 1 To 125

For j = 1 To 2301

If Лист1.Cells(i, 2).Value = Лист2.Cells(j, 3).Value Then

Лист1.Cells(i, 2).Value = Лист2.Cells(j, 6).Value

End If

Next j
Next i

End Sub

Попробовала данный код на приложенном файле . Почему-то не заменились ячейки — не понятно почему (



0



Kubuntovod

Эксперт NIX

2670 / 786 / 176

Регистрация: 14.01.2013

Сообщений: 3,676

04.10.2013, 17:52

4

Попробуйте вручную. Например, Лист1, строка 3, столбец 2 = «Предоставление сведений об административных правонарушениях в области дорожного движения». Ищем это значение в Листе 2, столбец 3. На строке 267 Бинго! Смотрим в столбец 6 Листа 2, а он брат близнец 3-му столбцу. Т.е. учитывая тот факт, что значения идентичны, то и замены не видно. Это если смотреть на Ваш код. А если прочесть первый пост, то код должен выглядеть так:

Visual Basic
1
2
3
If Лист1.Cells(i, 2).Value = Лист2.Cells(j, 2).Value Then
  Лист1.Cells(i, 2).Value = Лист2.Cells(j, 3).Value
End If



1



1 / 1 / 0

Регистрация: 14.11.2010

Сообщений: 48

04.10.2013, 18:07

 [ТС]

5

На листе 2 в столбце 3 есть короткие названия (меньше 255) — они заменяются сами на себя, поэтому идентичны.
А есть больше 255 — они заменяются на другие. Поэтому «вручной метод» сработал на идентичный вариант.

Добавлено через 8 минут
Попробуйте даже заменить 6 столбец на другой например на 4 — там цифры. Все равно ничего не происходит

Dim j As Integer
Dim i As Integer
For i = 1 To 122

For j = 1 To 2301

If Лист1.Cells(i, 2).Value = Лист2.Cells(j, 3).Value Then

Лист1.Cells(i, 2).Value =

Лист2.Cells(j, 4).Value
End If

Next j
Next i



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

04.10.2013, 18:19

6

Я же на другом форуме написал — не то сравниваете. Внимательно! Выше уже тоже указали на ошибку = Лист2.Cells(j, 2).Value Then



1



1 / 1 / 0

Регистрация: 14.11.2010

Сообщений: 48

04.10.2013, 18:49

 [ТС]

7

У меня изменился файл, посмотрите ссылку для скачивания, которую я выложила



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

04.10.2013, 18:49

Помогаю со студенческими работами здесь

Определить, какой скрипт меняет значение поля в форме
На странице есть форма, в ней в том числе несколько скрытых полей. Значения приходят вместе с…

Переключатель (флажок) в форме запроса, который меняет значение поля
Помогите люди добрые, мы в Access не местные.

—Есть 2 связанные таблицы, есть запрос, который…

Джава скрипт, который передает значение скрытого поля с одной страницы на другую
мне нужно передать код из четырех цифр с одной страницы, где они находятся в тэге <p> другой…

Получить значение ячейки, зная, что у другой ячейки в этой строке — максимальное значение
Да, может заголовок не очень, но я не знаю как лучше вкратце описать проблему.
В общем, у меня…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

7

 

umka777_89

Пользователь

Сообщений: 10
Регистрация: 28.05.2013

Здравствуйте, подскажите пожалуйста, можно ли как-то средствами VBA отредактировать текст в ячейке..может как-нибудь поиск и замена..
Дана строка в ячейке : ОК-1, 3, ПК-4,7,11
Нужно получить: ОК-1, ОК-3, ПК-4, ПК-7, ПК-11

Прошу помощи

 

AndreTM

Пользователь

Сообщений: 454
Регистрация: 02.05.2013

#2

05.06.2013 23:25:53

Код
Function ReformTxt(s As String) As String
    Dim a, i&, j&
    a = Split(Trim(s), ",")
    s = ""
    For i = 0 To UBound(a)
        j = InStr(1, a(i), "-")
        If j > 0 Then
            s = Trim(Left(a(i), j))
            a(i) = s & Trim(Mid(a(i), j + 1))
        Else
            a(i) = s & Trim(a(i))
        End If
    Next
    ReformTxt = Join(a, ", ")
End Function
 

nerv

Пользователь

Сообщений: 3071
Регистрация: 22.12.2012

можно с помощью регулярных выражений сделать

 

umka777_89

Пользователь

Сообщений: 10
Регистрация: 28.05.2013

Спасибо
Помогите,пожалуйста, как вот такое вот условие реализовать:
в таблице пример,
есть ячейка, в которой (на рисунке это В5) записаны пункты (они должны быть расшифрованы), и вот в наш комбобокс должны входить только строки с названиями из ячейки В5 из столбца А.

наверное, надо как-то проверять:
если значение ячейки В5 содержит значение ячейки из столбца А, то заносим в комбобокс.
не могу додумкать..

Прикрепленные файлы

  • 111.jpg (34.62 КБ)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

umka777_89, Вы в курсе, что макрос в рисунок вставить нельзя?
Прошу почитать Правила форума.

 

umka777_89

Пользователь

Сообщений: 10
Регистрация: 28.05.2013

Извините пожалуйста…
вот

Изменено: umka777_8906.06.2013 11:24:24

 

Юрий М

Модератор

Сообщений: 60584
Регистрация: 14.09.2012

Контакты см. в профиле

Посетители форума, других названий, кроме как «Книга1» и «Пример», не знают… И невдомёк им, что те, кто хочет им помочь, при сохранении файла в папку загрузки, вынуждены КАЖДЫЙ раз придумывать новое имя для сохранения. Неужели так худо с фантазией?

 

umka777_89

Пользователь

Сообщений: 10
Регистрация: 28.05.2013

только вот что придумалось..
Наверное что-то не то пишу, ткните носом в ошибку?
Dim i&
Const iRow = 65536: iClm = «A»
sn = Лист2.Name
iRws = Sheets(sn).Range(iClm & iRow).End(xlUp).Row
‘ ComboBox1.ListFillRange = sn & «!» & iClm & «1:» & iClm & iRws

For i = 1 To iRws
If Cells(100, 2).Value Like Cells(i, 1).Value Then

ComboBox1.AddItem Sheets(sn).Cells(i, 1)
End If
Next i

Ничего не происходит…

 

umka777_89

Пользователь

Сообщений: 10
Регистрация: 28.05.2013

Dim i&
   Const iRow = 65536: iClm = «A»
   sn = Ëèñò2.Name
   iRws = Sheets(sn).Range(iClm & iRow).End(xlUp).Row
 ‘ ComboBox1.ListFillRange = sn & «!» & iClm & «1:» & iClm & iRws

         For i = 1 To iRws
   If [B100] Like «*» & Sheets(sn).Cells(i, 1) & «*» Then
   ComboBox1.AddItem i
  End If
 Next i

ошибка в строке ComboBox1.AddItem i

 

Юрий М

Модератор

Сообщений: 60584
Регистрация: 14.09.2012

Контакты см. в профиле

umka777_89, специально для кодов существует тег — пользуйтесь им. См. пост #2

 

umka777_89

Пользователь

Сообщений: 10
Регистрация: 28.05.2013

#11

06.06.2013 15:07:39

Юрий М,
Спасибо, буду соблюдать)
Вот что получилось, но каждый раз при выборе из комбобокса, в него добавляются элементы заново, и получается список (1,2,3,1,2,3,1,2,3…).Как сделать чтобы элементы в списке были по одному разу все?

Код
  Dim i&
     Const iRow = 65536: iClm = "A"
     sn = Лист2.Name
     iRws = Sheets(sn).Range(iClm & iRow).End(xlUp).Row
    ' ComboBox1.ListFillRange = sn & "!" & iClm & "1:" & iClm & iRws
  
    For i = 1 To iRws
    'If Cells(100, 2).Value Like Cells(i, 1).Value Then
    ' ComboBox1.AddItem Sheets(sn).Cells(i, 1)
    
    If [B100] Like "*" & Sheets(sn).Cells(i, 1) & "*" Then
    ComboBox1.AddItem Sheets(sn).Cells(i, 1)
    End If
    
    If Sheets(sn).Cells(i, 1) = Me.ComboBox1.Text Then
    Cells(98, 9) = Sheets(sn).Cells(i, 2)
    End If
  Next i

Изменено: umka777_8906.06.2013 15:08:09

 

Юрий М

Модератор

Сообщений: 60584
Регистрация: 14.09.2012

Контакты см. в профиле

Сначала его нужно очистить: ComboBox1.Clear

 

umka777_89

Пользователь

Сообщений: 10
Регистрация: 28.05.2013

Юрий М,
если очищаю в начале, то потом почему то вообще не работает что прописано

Изменено: umka777_8906.06.2013 15:26:35

 

Юрий М

Модератор

Сообщений: 60584
Регистрация: 14.09.2012

Контакты см. в профиле

За темой не следил, КомбоБокс не нашёл — разбираться нет времени… Я Вам подсказал, что, если список в КомбоБоксе постоянно пополняется/нарастает (пост #11), то нужно его предварительно очистить.

 

umka777_89

Пользователь

Сообщений: 10
Регистрация: 28.05.2013

Юрий М,
ну так можно ведь в режиме конструктора посмотреть где комбобокс, я понимаю, про вашу подсказку, просто если очищаю, то второй if не работает

 

Юрий М

Модератор

Сообщений: 60584
Регистрация: 14.09.2012

Контакты см. в профиле

Вижу его )) Давайте сначала: какие и где проводятся манипуляции и что должно быть в том или ином случае.

 

umka777_89

Пользователь

Сообщений: 10
Регистрация: 28.05.2013

#17

06.06.2013 19:37:15

Юрий М,
вот там есть ячейка с значениями: vb,rrff, yes, no
я сделала, чтобы в combobox1 были только строки с текстом из ячеек,
а вот в ячейку I98(к нем прикреплен combobox1) нужно чтобы вставлялось значение из листа второго, например выбираем «vb» вставляется «птптngfn»
это как бы работает, если не очищаем combobox1, но тогда при каждом вызове combobox1 в его список снова добавляются строки
если поставить очистку combobox1, то получается что второе условие

Код
If Sheets(sn).Cells(i, 1) = Me.ComboBox1.Text Then
    Cells(98, 9) = Sheets(sn).Cells(i, 2)

не выполняется, вот…

 

Юрий М

Модератор

Сообщений: 60584
Регистрация: 14.09.2012

Контакты см. в профиле

Так…)) Выделяю ячейку I98, появляется КомбоБокс. В нём сразу значение rrff, список КомбоБокса пуст. Что я делаю не так?

 

umka777_89

Пользователь

Сообщений: 10
Регистрация: 28.05.2013

Юрий М,
ааа, это тоже не знаю почему, надо зайти на другой лист потом вернуться на первый
и еще попробуйте в самом редакторе VBA запустить код

 

Юрий М

Модератор

Сообщений: 60584
Регистрация: 14.09.2012

Контакты см. в профиле

#20

06.06.2013 20:26:13

umka777_89, думаю, что этот несчастный КомбоБокс никому уже неинтересен — не будем загромождать форум. Предлагаю переместиться в Скайп — координаты в профиле.
P.S. Интим не предлагать.

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как изменить значение в списке excel
  • Как изменить значения вертикальной оси в диаграмме excel
  • Как изменить защищенный файл word
  • Как изменить значения в фильтре excel
  • Как изменить документы в формате pdf в word

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии