好的,大家对此感到莫名其妙...
我在Access中的Excel中有一个链接表。我正在尝试编写一个vba函数,该函数返回该表给定列的过滤范围地址。请记住,我正在尝试使用结构化引用(例如Table1 [[#Data],[Column2]]),因为它是一个链接表,并且旨在随时间刷新和更改。
我使用xlCellTypeVisible无济于事。该函数仍然返回整个范围,即使它已被过滤。
更令人困惑的是,我创建了一个几乎相同的Sub(而不是Function,因此我可以逐步执行),该Sub 正正确返回所需的收益!我难过了;我只是不能在函数中复制它。我怀疑这与结构化引用有关。
功能“filteredRange”错误地返回的整个范围“$ F $ 2:$ F74”,当我进入这个到Excel中的任意单元格。
=filteredRange(Table_RyanDB[[#Data],[LC]])
Run Code Online (Sandbox Code Playgroud)
而以下子“测试”确实返回正确答案“ $ F $ 2:$ F $ 14”。我似乎无法辨别为什么它们的输入变量输出不相同。
Sub test()
Dim theRange As Range
Set theRange = Range("Table_RyanDB[[#Data],[LC]]")
MsgBox theRange.Rows.SpecialCells(xlCellTypeVisible).Address
End Sub
Function filteredRange(theRange As Range)
filteredRange = theRange.SpecialCells(xlCellTypeVisible).Address
End Function
Run Code Online (Sandbox Code Playgroud) 我在StackOverflow上看到的几乎所有SetInterval错误都是由于将函数名称作为"字符串"传递,但也许我仍然缺少某种变量范围问题.请指教!
我正在创建一个具有暂停和播放功能的幻灯片.在播放时,我希望幻灯片每3秒前进一次.但执行一次后,启动NextSlide函数的SetInterval失败.
我试过它......
SetInterval("nextSlide()", 3000)
SetInterval(nextSlide(), 3000)
var t = SetInterval(nextSlide(), 3000)
var t = SetInterval(function(){nextSlide(), 3000)
Run Code Online (Sandbox Code Playgroud)
......每次都失败了.我在这里错过了什么?
var slide_1 = "slide_1";
var slide_2 = "slide_2";
var slideNum = 0;
var odd = true;
var totalMax = 6;
var busy = false;
var allSlides = new Array();
allSlides[0] = "test_01";
allSlides[1] = "test_02";
allSlides[2] = "test_03";
allSlides[3] = "test_04";
allSlides[4] = "test_05";
allSlides[5] = "test_06";
allSlides[6] = "test_07";
function PlaySlide(){
var t = SetInterval(nextSlide(),3000)
document.getElementById("play").style.visibility = "hidden";
document.getElementById("pause").style.visibility = "visible"; …Run Code Online (Sandbox Code Playgroud)