2

Простой вопрос Я работаю в Excel 2007, и я хочу преобразовать 1000 граммов в 1 килограмм, когда я ввожу 1000 граммов в определенную ячейку. Поэтому я решил создать заявление if ниже. Однако есть проблема с этим. Он утверждает, что это круговая ссылка, и оставляет мне значение 0. Есть ли простой способ исправить эту проблему в Excel?

Вот заявление, если у меня есть.

=IF(C8 >= 1000,CONVERT(C8,"g","k"),C8)

Скажите, что вы, ребята, думаете.

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

3 ответа3

1
  • Если эта формула в C8

Вы не можете решить эту проблему, даже если вы включите итерацию, как я использовал в https://stackoverflow.com/questions/7647312/using-max-min-functions-to-remember-highs-lows-in-dynamic-data -в-первенствует /7647609 # 7647609

Это происходит потому, что добавление функции уничтожит значение, уже существующее в C8 (в моем связанном примере с SO формула работает так, как она может выглядеть сама по себе)

  • Если эта формула не в C8

Тогда это должно работать, и у вас должна быть круговая ссылка в другом месте. Чтобы найти и удалить круговой рефлекс, посмотрите здесь

1

Чтобы добавить дополнительную информацию к ответу brettdj, если вы хотите изменить ячейку при ее изменении, вам, вероятно, лучше использовать процедуры Event, такие как Worksheet_Change() .

См . Сайт Чипа Пирсона на эту тему.

Например, вы можете сделать:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C8")) Is Nothing Then
        Target.Value = Application.WorksheetFunction.Convert(Target.Value, "g", "k")
    End If
End Sub

Примечание: у меня нет функции Convert в Excel 2003, я не знаю, является ли это UDF или недавней функцией.

1

почему бы тебе просто не отформатировать ячейку?

Доступ к свойству числового формата возможен в VBA - попробуйте это: поместите 1000 в ячейку, затем из непосредственного окна (alt+F11, ctrl+g) введите

selection.numberformat="0,"" kg"""

это помогает?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .