首页
学习
活动
专区
圈层
工具
发布

Excel VBA解读(143): 在自定义函数中使用整列引用时,如何更有效率?

学习Excel技术,关注微信公众号: excelperfect Excel用户经常发现在公式中使用整列的引用很方便,这样可避免每次添加新数据时都必须调整公式。...下面的示例VBA代码处理交叉区域,然后返回输入区域中的行数和已使用区域中的行数的较小者。...theRng, theRng.Parent.UsedRange) GetUsedRows = oRng.Rows.Count End Function 代码中,变量theRng的Parent属性返回包含其指向的单元格的工作表...然后,只有为每个工作表请求已使用单元格区域的第一个用户自定义函数使用时间来查找已使用的单元格区域,并且(假设计算本身不会改变已使用的单元格区域)将总是检索正确的数字。...注意,只能在Excel 2002及更高版本的用户自定义函数中使用Range.Find,并且除了命令宏或COM之外,不能在XLL中使用Find方法。

3.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在Entity Framework中使用存储过程(三):逻辑删除的实现与自增长列值返回

    本篇文章通过实例的方式,讨论两个在EF使用存储过程的主题:如何通过实体和存储过程的映射实现逻辑删除;对于具有自增长类型主键的数据表,在进行添加操作的时候如何将正确的值反映在实体对象上。...Contact对象,在存储过程中完成添加操作后,应该通过SELECT语句将对应的真实ID返回,这样的存储过程应该这样来写: 1: CREATE PROCEDURE [P_CONTACT_I]...Framework中使用存储过程(一):实现存储过程的自动映射 在Entity Framework中使用存储过程(二):具有继承关系实体的存储过程如何定义?...在Entity Framework中使用存储过程(三):逻辑删除的实现与自增长列值返回 在Entity Framework中使用存储过程(四):如何为Delete存储过程参数赋上Current值?...在Entity Framework中使用存储过程(五):如何通过存储过程维护多对多关系?

    2.3K80

    OpenGL 深度测试与精度值的那些事

    当深度测试被启用时,OpenGL 会将一个片段的深度值与深度缓冲的内容进行对比。...OpenGL 会执行一个深度测试,如果这个测试通过了的话,深度缓冲将会更新为新的深度值,如果深度测试失败了,该片段将会被丢弃。 深度缓冲是在片段着色器运行之后,在屏幕空间中运行的。...1// 设置只读的深度缓冲 2glDepthMask(GL_FALSE); 深度测试函数 OpenGL 允许修改深度测试中使用的比较运算符,允许我们控制 OpenGL 什么时候该通过或丢弃一个片段,什么时候更新深度缓冲...在片段深度值等于缓冲区的深度值时通过测试 GL_LEQUAL 在片段深度值小于等于缓冲区的深度值时通过测试 GL_GREATER 在片段深度值大于缓冲区的深度值时通过测试 GL_NOTEQUAL 在片段深度值不等于缓冲区的深度值时通过测试...可以看到在 z 值位于 1.0 和 2.0 之间时,对应的深度值为 0.0 到 0.5 的区间,这就占据了深度值区间范围的 50 %。而 2.0 之后的范围也才占据了 50 %。

    2.1K30

    Shader 入门:GLSL ES(运算符和限定符)

    uniform sampler2D texture; 另外 uniform 变量只能在程序中使用 OpenGL ES 的一系列 glUniform API 进行赋值: // 程序代码 int location..., 0.0f, 1.0f); // 给 color 赋值 // 着色器代码 uniform vec4 color; // vec4(0.0, 0.1, 0.0, 1.0) 参数限定符(Parameter...// 变量声明 lowp float a; mediump vec2 p; highp mat4 m; // 函数声明(返回值和参数)也适用 highp float foo(highp param);...precision lowp samplerCube; 而在片段着色器中有以下默认精度声明: precision mediump int; precision lowp sampler2D; precision...lowp samplerCube; 在片段着色器中浮点类型、浮点向量和浮点矩阵都没有默认的精度,所以使用时就必须声明其精度,或者事先声明默认精度!

    3.2K00

    Google 单元测试框架

    ,但是我们可以在运行时指定他的行为,如何被使用,使用多少次、参数,使用时返回什么等。...libmock.a 不包含 gtest,需要指定链接 libgtest.a gmock 测试程序 参考 gmock 编程指导和 codebook gmock mock 对象,可以定义函数期望行为,如被调用时返回的值...gmock 对象的基本步骤: 创建 mock 对象继承自原对象,并用框架提供的宏 MOCK_METHODn(); (or MOCK_CONST_METHODn(); 描述需要模拟的接口 写用例,在用例中使用宏定义期望接口的行为...4次 // 否则报错 // 第一次调用返回100, 第二次150,之后都是200 EXPECT_EQ(turtle.GetX(), 100); EXPECT_EQ...(), 100); EXPECT_EQ(turtle.GetY(), 150); EXPECT_EQ(turtle.GetY(), 200); } 最后,和 gtest

    2.5K20

    Android viewpager嵌套使用photoview异常问题(java.lang.IllegalArgumentException)

    自然就想到了使用viewpager+photoview来实现这一功能,但是在实现后,却发现一个bug,就是在使用双手放大图片时,会抛异常,抛的异常是如下: E/AndroidRuntime(22447)...android.view.MotionEvent.nativeGetAxisValue(Native Method) 我查了很多的资料,发现问题所在是,photoview和viewpager组合使用时...handled; } else { return super.dispatchTouchEvent(ev); } } } 进行重写后,在布局中使用重写的...(0) - event.getY(1); } catch (IllegalArgumentException e) { // TODO Auto-generated catch...block e.printStackTrace(); } 但是,由于造成这一异常的方法是在photoview使用时造成的,我们无法捕获,除非找到对应的使用地方,因此这一方法相对重写

    83910

    Java-Java5.0泛型解读

    一旦给出了类型参数,就可以在类中使用了。类型参数必须是一个合法的标识符,习惯上使用单个大写字母,通常情况下,K 表示键,V 表示值,E 表示异常或错误,T 表示一般意义上的数据类型。...---- 泛型方法 我们可以编写一个泛型方法,该方法在调用时可以接收不同类型的参数。根据传递给泛型方法的参数类型,编译器适当地处理每一个方法调用。...一旦定义了类型参数,就可以在参数列表、方法体和返回值类型中使用了。 与使用泛型类不同,使用泛型方法时不必指明参数类型,编译器会根据传递的参数自动查找出具体的类型。...因为在使用泛型时没有指明数据类型,为了不出现错误,编译器会将所有数据向上转型为 Object,所以在取出坐标使用时要向下转型....,为了不出现错误,编译器会将所有数据向上转型为 Object,所以在取出坐标使用时要向下转型,和不使用泛型没什么两样。

    74330

    Java 弧度转多线段的实现与解析

    这种转换在图形学和几何学计算中非常有用,可以将圆形或曲线形状近似地表示为直线段,便于在显示、计算和渲染过程中使用。本文将从概述开始,逐步介绍原理、实现步骤、核心类方法,并提供示例代码进行说明。...Point2D point : segmentPoints) { System.out.println("Point: " + point.getX() + ", " + point.getY...计算每个点的x和y坐标后,将其加入到一个List中,最终返回所有的点。main方法:测试用例,生成一个弧度为90度的弧,并将其近似为10条直线段。3....小结:这个测试用例的目的是确保将圆弧转换为线段的方法能够正确执行,并返回预期的点列表。通过定义圆弧的参数,调用转换方法,然后验证点的数量和坐标,测试确认了转换方法的功能。...总结通过弧度转多线段的技术,开发人员可以在许多需要近似处理曲线的场景中使用简单、高效的几何算法来提高性能。理解并掌握这种技术,对于提高程序的渲染效率和几何计算的灵活性非常重要。

    1K31

    WebGL: 从 2D 开始

    WebGL依然是在HTML5 画布范畴,所以在html中使用canvas标签,来提供画布上下文。案例中利用了一些工具库来帮助我们把重点放在WebGL应用上。接下来在js文件中创建webgl上下文。...片段可以先理解为一个像素,但是在逐片段绘制阶段会因为深度、融合等过程而丢弃一些片段,所以webgl中的片段和像素还是有区别的。...比如深度测试缓存可以对片对z值进行比较,决定是否丢弃片段,融合操作可以将传入片段的颜色如已经在颜色缓存中的片段进行组合,一般用在透明对象中。...在使用for循环时,除了C语言中就有的continue和break控制语句外,还有一个discard。 discard在片段着色器中被使用,当它被调用时,表示放弃当面片段,直接处理下一个片断。...在矢量和矩阵赋值的时候要注意元素类型和数量的一致。比如:vec4 position = vec4(0.0, 0.0, 0.0, 0.0);。

    5.6K10

    【Kotlin 协程】Flow 异步流 ② ( 使用 Flow 异步流持续获取不同返回值 | Flow 异步流获取返回值方式与其它方式对比 | 在 Android 中使用 Flow 异步流下载文件 )

    文章目录 一、使用 Flow 异步流持续获取不同返回值 二、Flow 异步流获取返回值方式与其它方式对比 三、在 Android 中 使用 Flow 异步流下载文件 一、使用 Flow 异步流持续获取不同返回值...---- 在上一篇博客 【Kotlin 协程】Flow 异步流 ① ( 以异步返回返回多个返回值 | 同步调用返回多个值的弊端 | 尝试在 sequence 中调用挂起函数返回多个返回值 | 协程中调用挂起函数返回集合...) 中 分析了 以异步方式 分别使用 序列 和 集合 返回多个返回值 , 序列可以先后返回多个返回值 , 但是会阻塞线程 ; 集合可以一次性返回多个返回值 , 无法持续返回返回值 ; 本篇博客中开始引入...Flow 异步流的方式 , 持续性返回多个返回值 ; 调用 flow 构建器 , 可创建 Flow 异步流 , 在该异步流中, 异步地产生指定类型的元素 ; public fun flow(@...; 三、在 Android 中 使用 Flow 异步流下载文件 ---- Android 中主线程不可执行网络相关操作 , 因此只能在 子线程 中下载文件 , 可以在协程中使用 Dispatcher.IO

    2.2K11
    领券