<html>
<head>
</head>
<body>
<b href="#div1" onclick=show_div1()>DIV1</b>
<b href="#div2" onclick=show_div2()>DIV2</b>
<b href="#div3" onclick=show_div3()>DIV3</b>
<div id="div1">
<p>This is div number 1</p>
</div>
<div id="div2">
<p>This is div number 2</p>
</div>
<div id="div3">
<p>This is div number 3</p>
</div>
</body>
<script>
document.addEventListener("DOMContentLoaded", function(event){
on_page_load();
});
function on_page_load(){
document.getElementById("div1").style.display="none";
document.getElementById("div2").style.display="none";
document.getElementById("div3").style.display="none";
document.getElementById("div4").style.display="none";
var p = window.location.pathname.split("/")[1];
console.log("on page load, pathname: " + p);
history.pushState({url: p}, null, p);
console.log("js routing to: " + p);
js_route(p);
n1 = 0; n2 = 0; n3 = 0;
}
function show_div1(){
document.getElementById("div1").style.display="block";
document.getElementById("div2").style.display="none";
document.getElementById("div3").style.display="none";
document.getElementById("div4").style.display="none";
n1 = n1 + 1;
//console.log("showing div1 for " + n1 + "th time");
history.pushState({url: 'div1', n: n1}, null, "div1");
}
function show_div1_hist(){
document.getElementById("div1").style.display="block";
document.getElementById("div3").style.display="none";
document.getElementById("div2").style.display="none";
document.getElementById("div4").style.display="none";
// n1 = n1 + 1;
// console.log("showing div1 for " + n1 + "th time");
// history.pushState({url: 'div1', n: n1}, null, "div1");
}
function show_div2(){
document.getElementById("div2").style.display="block";
document.getElementById("div1").style.display="none";
document.getElementById("div3").style.display="none";
document.getElementById("div4").style.display="none";
n2 = n2 + 1;
//console.log("showing div2 for " + n2 + "th time");
history.pushState({url: 'div2', n: n2}, null, "div2");
}
function show_div2_hist(){
document.getElementById("div2").style.display="block";
document.getElementById("div1").style.display="none";
document.getElementById("div3").style.display="none";
document.getElementById("div4").style.display="none";
// n2 = n2 + 1;
// console.log("showing div2 for " + n2 + "th time");
// history.pushState({url: 'div2', n: n2}, null, "div2");
}
function show_div3(){
document.getElementById("div3").style.display="block";
document.getElementById("div2").style.display="none";
document.getElementById("div4").style.display="none";
document.getElementById("div1").style.display="none";
n3 = n3 + 1;
//console.log("showing div3 for " + n3 + "th time");
history.pushState({url: 'div3', n: n3}, null, "div3");
}
function show_div3_hist(){
document.getElementById("div3").style.display="block";
document.getElementById("div2").style.display="none";
document.getElementById("div1").style.display="none";
document.getElementById("div4").style.display="none";
// n3 = n3 + 1;
// console.log("showing div3 for " + n3 + "th time");
// history.pushState({url: 'div3', n: n3}, null, "div3");
}
window.onpopstate = function(event) {
event.preventDefault();
var popped_url = event.state.url;
var popped_n = event.state.n;
console.log("popstate url: " + popped_url);
console.log("onpopstate, routing to: " + window.location.pathname + " and n is " + popped_n);
js_route_hist(popped_url);
//js_route(window.location.pathname.split("/")[1]);
}
function js_route(path){
switch(path){
case "div1":
show_div1();
break;
case "div2":
show_div2();
break;
case "div3":
show_div3();
}
}
function js_route_hist(path){
switch(path){
case "div1":
show_div1_hist();
break;
case "div2":
show_div2_hist();
break;
case "div3":
show_div3_hist();
}
}
</script>
</html>
答案 0 :(得分:2)
第一个Exit For执行时,它会绕过第二个。您需要在内循环外放置第二个Exit。
Dim valCheck As Variant
For i = 0 To row1
For j = 0 To col1
MsgBox ("started" & i)
valCheck = Range("A1").Offset(i, j).Value
MsgBox (valCheck)
If valCheck = "Details" Then
MsgBox ("found")
ActiveCell = Range("A1").Offset(i + 1, j)
Exit For
End If
Next j
If valCheck = "Details" Then Exit For
Next i
答案 1 :(得分:2)
您不需要拥有2个For
循环和Exit For
,您只需使用Find
功能即可。
Dim FindRng As Range
Set FindRng = Cells.Find("Details")
If Not FindRng Is Nothing Then ' Find was successful
FindRng.Select ' <-- not sure what you want to do after you find the cell with "Details" ?
Else ' Find failed
MsgBox "Unable to find 'details'", vbCritical
End If