excel - 使用 vba 创建动态单元格地址
问题描述
我有一列(在我的例子中是 B 列),标题名为“case”,单元格包含数字。我正在编写一个简单的代码来执行任务,这样
- 对于列中的每个单元格(可能执行 for 循环),检查前 100 个单元格(帧)
- 当[第一季度的平均值<第二季度的平均值<第三季度的平均值]和[第四季度的平均值>第三季度的平均值]时,我应该在符合条件的单元格旁边的单元格中添加一个“标志” .
我想让“框架”宽度和“四分之一宽度”变量,并开始为此编码。
sub check_pattern()
Dim boundary as integer
Set boundary = 5
Dim Framewidth as long
Set Framewidth = 100
Dim case as range
Set case = ThisWorkbook.Worksheets("sheet1").Rows(1).Find("case", lookat:=xlPart)
'declare column number of my data
Dim AR as integer, BR as integer, CR as integer, DR as integer, ER as integer
'declare row numbers of the boundaries of range of address, will be used in vba offset
AR = Round(Framewidth*(boundary - 1)/(boundary - 1))
BR = Round(Framewidth*(boundary - 2)/(boundary - 1))
CR = Round(Framewidth*(boundary - 3)/(boundary - 1))
DR = Round(Framewidth*(boundary - 4)/(boundary - 1))
ER = Round(Framewidth*(boundary - 5)/(boundary - 1))
Dim i as integer, LRow as long
Set LRow = Application.WorksheetFunction.CountA(Worksheets("sheet1").Columns(case))
'declare variables for the for loop
'For i = 2 to LRow
'[missing code]
'Next i
End sub
现在我对缺少的代码部分感到很困难。如果所涉及的范围是静态的,我会这样编码
if and Application.Average(Range("b2:b26")) < Application.Average(Range("b27:b51")) and Application.Average(Range("b27:b51")) < Application.Average(Range("b52:b76")) and Application.Average(Range("b52:b76")) > Application.Average(Range("b77:b101")) then range("C102").value = "Flag"
我想让这个任务循环直到行号为 5XXXX(声明为 LRow),并且四分之一宽度可能是可变的。你能填补我缺失的部分吗?谢谢你。
解决方案
推荐阅读
- node.js - Cobertura 格式代码覆盖率报告,用于 Azure Devops 上的 React App
- android - 我可以通过 Android Emulator 摄像头看到我的桌面屏幕吗?
- graphql - 我们如何捕获 quarkus 抛出的未经授权的异常
- c# - c#forms如何获取用户控件的dll输出以从添加到现有项目的项目中添加到工具箱
- c++ - 版本 10 和 11 之间的 GCC ABI 兼容性
- javascript - 使菜单在单击时消失
- python - Pandas:如果语句具有多个条件
- reactjs - React Native End to End Tests with Detox:获取匹配元素的高度、宽度和其他属性
- python - Python-来自用户输入的 GET 请求
- php - 如何从@foreach 传递数据到编辑模式