Excel IFERROR оценивает #VALUE и возвращает число

Проблема связана с использованием FlowLayout Manager. Я решил вашу проблему с другим менеджером макетов. Перед публикацией решения здесь приведены некоторые советы, которые вы должны соблюдать

  1. Измените название своего класса. Это должно быть в верблюжьем футляре
  2. Попробуйте вызвать pack () вместо setSize (), поскольку он будет обрабатывать его автоматически. Когда я заменил setSize () на pack (), он показывал неудобный GUI, который доказывает, что ваш макет и добавление элементов были неправильными.
        Font size30 = new Font(null, Font.PLAIN, 30);
    
        JPanel pnl = new JPanel();
        pnl.setLayout(new BoxLayout(pnl,BoxLayout.Y_AXIS));
    
        Container contentPane = getContentPane();
    
        //--- User Info ---//
    
        JPanel userInfo = new JPanel();
    
        JLabel userLabel = new JLabel("Username: ");
        JTextField userField = new JTextField(12);
        userInfo.add(userLabel);
        userInfo.add(userField);
    
        JLabel passLabel = new JLabel("Password: ");
        JTextField passField = new JTextField(10);
        userInfo.add(passLabel);
        userInfo.add(passField);
    
        JLabel serverLabel = new JLabel("Mail Server: ");
        JTextField serverField = new JTextField(10);
        userInfo.add(serverLabel);
        userInfo.add(serverField);
    
        JLabel portLabel = new JLabel("Server Port: ");
        JTextField portField = new JTextField(3);
        userInfo.add(portLabel);
        userInfo.add(portField);
    
        //--- To: CC: and Subject Fields ---//
    
        JPanel msgInfo = new JPanel();
    
        JLabel toLabel = new JLabel("To: ");
        JTextField toField = new JTextField(30);
        msgInfo.add(toLabel);
        msgInfo.add(toField);
    
        JLabel subLabel = new JLabel("Subject: ");
        JTextField subField = new JTextField(30);
        msgInfo.add(subLabel);
        msgInfo.add(subField);
    
        //--- Body ---//
    
        JLabel bodyLabel = new JLabel("Body");
        bodyLabel.setFont(size30);
    
        JTextArea bodyField = new JTextArea(30,70);
        bodyField.setLineWrap(true);
        bodyField.setWrapStyleWord(true);
    
        JScrollPane bodyScroll = new JScrollPane(bodyField);
    
        bodyScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
        bodyScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    
    
        pnl.add(userInfo);
        pnl.add(msgInfo);
        pnl.add(bodyLabel);
        pnl.add(bodyScroll);
    
        contentPane.add(pnl);
    
        setVisible(true);
        pack();
    
0
задан some_other_guy 16 January 2019 в 15:28
поделиться

1 ответ

Что может происходить, так это то, что SMALL возвращается 0. Если это так, то INDEX($F$64:$F$1000,0) вернет весь массив $F$64:$F$1000. Поскольку это не ошибка, IFERROR не отвечает на ошибку, а вместо этого возвращает $F$64:$F$1000.

Примечание: AND возвращает одно значение True / False, а не массив значений, поэтому, если оно часто не работает должным образом в формулах массива (CTRL-SHIFT-ENTER). В зависимости от поведения вашего проекта вам может понадобиться заменить AND на вложенные IF функции.

Надеюсь, это поможет

0
ответ дан xidgel 16 January 2019 в 15:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: