在IF状态VBA中引用名称单元格

时间:2018-04-13 16:23:59

标签: excel formula

所以我在Excel(最新版​​本)中有一堆命名单元格,我正在尝试使用以下公式来引用它们而不复制零:

= IF(named_cell,named_cell, “”)

但我得到#VALUE!但是,如果我使用

= named_cell

它工作正常。为什么它不适用于IF公式????

3 个答案:

答案 0 :(得分:1)

这完全取决于您要测试的内容:

=IF(OR(LEN(named)=0,named=0),"",named)

测试包含零或空(但不是空格字符)的单个命名单元格。

答案 1 :(得分:0)

正确使用名称​​(确保named_cell包含布尔值)
单元格 A1 具有名称 “ayeone”且值True
Cell B1 的名称为“beeone”,值为 Bee C1 的公式为:=IF(ayeone,beeone,"")

enter image description here

VBA

Sub WhatsInAName()
    MsgBox Range("ayeone").Address & vbCrLf & Range("ayeone").Value
End Sub

enter image description here

答案 2 :(得分:0)

如果指定的单元格包含文本或空白(没有真实数字),则可以通过在结果中附加零长度字符串来避免从空白单元格返回的零。

public class FirstFragment extends Fragment {
    public RecyclerView recyclerView;
    public SwipeRefreshLayout mswipeRefreshLayout;
    public static MyRecyclerAdapter searchAdapter;
    private static final String TAG = "FirstFragment";
    MyRecyclerAdapter myRecyclerAdapter;
    ArrayList<DataStored> dataStoredArrayList = new ArrayList<>();
    private ParseDataClass mparser;


    private void initView() {
        recyclerView = (RecyclerView) fragment_view.findViewById(R.id.mFirstRecyclerview);
        mswipeRefreshLayout = (SwipeRefreshLayout) fragment_view.findViewById(R.id.swipelayoutm);
        mswipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                refreshList();
            }
        });
    }

    private void setAdapter() {
        recyclerView.setLayoutManager(new LinearLayoutManager(this.getActivity()));
        myRecyclerAdapter = new AdapterOrders(getActivity(), dataStoredArrayList);
        recyclerView.setAdapter(myRecyclerAdapter);
        searchAdapter = myRecyclerAdapter;
    }

    private void setParser() {
        mparser = new ParseDataClass(getActivity());
        mparser.setOnDataRetrievalCallback(new OnDataRetrievalCallback() {
            @Override
            public void onDataRetrieval(ArrayList<DataStored> dataSet) {
                mswipeRefreshLayout.setRefreshing(false);
                if (dataSet != null)
                    dataStoredArrayList = dataSet;
                myRecyclerAdapter.notifyDataSetChanged();
            }
        });
    }

    private void refreshList() {
        mswipeRefreshLayout.setRefreshing(true);
        setParser();
        mparser.execute("http://192.168.3.10/fetchtext.php", "1");
    }

    View fragment_view;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        fragment_view = inflater.inflate(R.layout.first_fragment, null);
        initView();
        setAdapter();
        setParser();
        refreshList();
        return fragment_view;
    }
}

此方法也可以应用于从空白单元格返回零的VLOOKUP或INDEX / MATCH。