Excel中的高级过滤VBA,使用OR

时间:2017-01-31 07:31:58

标签: excel vba excel-vba advanced-filter

我尝试在VBA中为Excel 2013制作高级过滤器。出于某些特定原因,我不想使用Excel表。

我创建了两行标题:(第48行),其中一行包含多行标准(A49:Q55),另一行标题(第56行)包含数据行。

当我尝试使用过滤器来使用 OR 条件时,我想要从数据范围中过滤这两个值,我将数据放在标题范围下的一个单元格中,而将其他数据放在第二个单元格中这个单元格下面的行只比我只收到与标题下面的第一个单元格相对应的数据。什么做得非常糟糕?

public class JavaFXTest extends Application {

    private TabPane tabPane;

    @Override
    public void start(Stage primaryStage) {
        tabPane = new TabPane();
        WebView webView = new WebView();
        alterWebView(webView);

        Tab tab = new Tab("Home Tab");
        tab.setContent(webView);
        tab.setClosable(true);

        tabPane.getTabs().add(tab);

        webView.getEngine().load("https://www.google.co.in/?gws_rd=ssl#q=javafx");

        BorderPane root = new BorderPane();
        root.setTop(tabPane);

        Scene scene = new Scene(root, 600, 339);

        primaryStage.setTitle("Basic browser");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

    private void alterWebView(WebView webView) {
        WebEngine engine = webView.getEngine();
        Worker worker = engine.getLoadWorker();

        worker.stateProperty().addListener((oldVal, newVal, o) -> {
            if (newVal.equals(State.RUNNING)) {
                handleUrls(engine.getDocument());
            }
        });
    }

    private void handleUrls(Document doc) {
        NodeList links = doc.getElementsByTagName("a");
        for (int i = 0; i < links.getLength(); i++) {
            EventTarget eventTarget = (EventTarget) links.item(i);
            String link = links.item(i).toString();
            eventTarget.addEventListener("click", e -> {
                WebView webView = new WebView();
                alterWebView(webView);

                Tab tab = new Tab(link);
                tab.setContent(webView);
                tab.setClosable(true);

                webView.getEngine().load(link);

                tabPane.getTabs().add(tab);

                e.preventDefault();
            }, false);
        }
    }
}

0 个答案:

没有答案