首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将整个列(每个值都在列中)放入一个数组中?

将整个列(每个值都在列中)放入一个数组中?
EN

Stack Overflow用户
提问于 2014-01-21 20:25:45
回答 2查看 73.8K关注 0票数 9

所以我做了一个宏来做一堆事情。一件事是在sheet2的sheet1中找到重复的单元格。给定表1中的columnA,sheet2上的columnB中的任何值是否与columna sheet1中的任何值匹配。

我知道有一个删除重复项,但我只想标记它们,而不是删除。

我在想一些关于过滤的东西。我知道当你过滤的时候,你可以选择多个条件,所以如果你有一个包含20个不同值的列,你可以在过滤器中选择5个值,它将显示包含这5个值的特定列的行。所以我录制了一个宏,并检查了代码,我看到它使用了字符串数组,其中要搜索的每个值都在字符串数组中。有没有办法只指定一整列并将每个值添加到字符串数组中?

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-21 21:17:14

以下是将项加载到数组中的三种不同方法。第一种方法要快得多,但只是将所有内容都存储在列中。不过,您必须小心这一点,因为它创建了一个多维数组,该数组不能传递给AutoFilter。

方法1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub LoadArray()
    Dim strArray As Variant
    Dim TotalRows As Long

    TotalRows = Rows(Rows.Count).End(xlUp).Row
    strArray = Range(Cells(1, 1), Cells(TotalRows, 1)).Value

    MsgBox "Loaded " & UBound(strArray) & " items!"
End Sub

方法二:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub LoadArray2()
    Dim strArray() As String
    Dim TotalRows As Long
    Dim i As Long

    TotalRows = Rows(Rows.Count).End(xlUp).Row
    ReDim strArray(1 To TotalRows)

    For i = 1 To TotalRows
        strArray(i) = Cells(i, 1).Value
    Next

    MsgBox "Loaded " & UBound(strArray) & " items!"
End Sub

如果您提前知道了这些值,并且只想将它们列在一个变量中,那么可以使用Array()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub LoadArray3()
    Dim strArray As Variant

    strArray = Array("Value1", "Value2", "Value3", "Value4")

    MsgBox "Loaded " & UBound(strArray) + 1 & " items!"
End Sub
票数 18
EN

Stack Overflow用户

发布于 2014-01-22 14:29:08

不确定其他人是否会有这个问题,所以我想我应该把我找到的答案贴出来。我喜欢@Ripster发布的数组解决方案(感谢它,它几乎可以工作),但它在这种情况下不会真正工作。我正在处理的是一个包含1个ID列的大型数据表,我想检查其他表,看看该表中是否有重复项(使用ID列)。不是删除,只是做个标记,这样我就可以查看它们了。可能会有超过50K的行循环通过每一行,这将需要很长时间。

因此,我想我可以做的是将ID列从另一个工作表复制到主工作表中,并使用条件格式选项以某种颜色标记副本。(它将标记两列中的行),然后我可以按颜色筛选列,只显示我用来标记副本的颜色。如果我以编程方式将一列添加到我正在检查行号的工作表中,我甚至可以将该列包括在主表中,这样当我过滤颜色时,我可以看到它们在工作表中的哪些行。

这样做之后,我可以录制并改编一个宏,以便为不太喜欢编程的同事自动执行此操作

非常感谢大家!

编辑-添加的代码

在选择要比较的列之后,下面是用红色文本标记重复项而不填充的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  Selection.FormatConditions.AddUniqueValues
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).DupeUnique = xlDuplicate
    With Selection.FormatConditions(1).Font
        .Color = -16383844
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False

然后,由于两列都标记了重复项,因此您可以选择实际要检查的列,下面是要过滤的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
`Selection.AutoFilter
ActiveSheet.Range("$C$1:$C$12").AutoFilter Field:=1, Criteria1:=RGB(156, 0 _
    , 6), Operator:=xlFilterFontColor`

(在我的测试中,我使用c列作为筛选列,可以通过编程的方式使用cells()引用或range(cells(), cells())类型的引用

我祝每个人在未来的事业中好运!再次感谢@ripster

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21268383

复制
相关文章
BIT类型在SQL Server中的存储大小
对于一般的INT、CHAR、tinyint等数据类型,他们占用的存储空间都是以Byte字节为单位的,但是BIT类型由于只有0和1或者说false和true,这种情况只需要一个Bit位就可以表示了,那么在SQL Server中BIT类型到底占用了多少空间?是不是由一个Bit位来存储的?或者可能是使用一个字节来存储的?
深蓝studyzy
2022/06/16
3.5K0
Java 查找 List 中的最大值、最小值Java 查找 List 中的最大值、最小值
Java 查找 List 中的最大值、最小值 java> List<Long> list = new ArrayList(); java.util.List<java.lang.Long> list = [] java> list.add(1L) java.lang.Boolean res1 = true java> list.add(2L) java.lang.Boolean res2 = true java> Collections.max(list) java.lang.Long res3 = 2 j
一个会写诗的程序员
2018/08/17
3.9K0
怎样在SQL Server数据库执行sql脚本?
注意:在操作前需要先把数据库的数据进行备份,以防数据出错,导致数据库损坏!(找到数据库,右键备份,选择备份输出的位置即可。)
管家婆软件
2022/11/21
18K0
怎样在SQL Server数据库执行sql脚本?
01:查找特定的值
01:查找特定的值 查看 提交 统计 1 #include<iostream> 2 using namespace std; 3 int a[10001]; 4 int main() 5 { 6 int n; 7 int ans; 8 cin>>n; 9 for(int i=1;i<=n;i++) 10 { 11 cin>>a[i]; 12 } 13 cin>>ans; 14 for(int j=1;j<
attack
2018/04/03
1.8K0
SQL Server中的GUID
GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值。
全栈程序员站长
2022/07/15
5.2K0
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
星哥玩云
2022/08/16
5.5K0
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
Sql Server 中 根据具体的值 查找该值所在的表和字段
在我们的工作中经常遇到这样一个问题,在页面中保存一条数据,有个字段值为“张三”,但是,不知道这条数据保存在了哪个表中,现在我们想要追踪该值是存储到了那个表的那个字段中,具体要怎么操作呢?下面我们可以借助存储过程来解决这一问题
jamesjiang
2022/11/20
6.4K0
Sql Server 中 根据具体的值 查找该值所在的表和字段
管理sql server表数据_sql server如何使用
表是SQL Server中最基本的数据库对象,用于存储数据的一种逻辑结构,由行和列组成, 它又称为二维表。 例如,在学生成绩管理系统中,表1–是一个学生表(student)。
全栈程序员站长
2022/09/23
1.8K0
管理sql server表数据_sql server如何使用
SQL Server 2008中的hierarchyid
本人转载:http://www.cnblogs.com/chenxizhang/archive/2009/04/26/1444016.html
跟着阿笨一起玩NET
2018/09/18
1.7K0
在IIS中为SQL Server 2008配置报表服务
不知道是不是SQL Server 2008的Bug,我在安装了SQL2008后(选择了安装报表服务的),但是在IIS中根本没有报表服务的虚拟目录。只是这么一个问题,其他BI设计器、报表服务等都还算正常。
深蓝studyzy
2022/06/16
2K0
在IIS中为SQL Server 2008配置报表服务
SQL Server 数据恢复
--创建测试数据库 CREATE DATABASE Db GO --对数据库进行备份 BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT GO --创建测试表 CREATE TABLE Db.dbo.TB_test(ID int) --延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败) WAITFOR DELAY '00:00:01' GO --假设我们现在误操作删除了 Db.dbo.TB_test 这个表 DROP TABLE Db.dbo.TB_test --保存删除表的时间 SELECT dt=GETDATE() INTO # GO --在删除操作后,发现不应该删除表 Db.dbo.TB_test --下面演示了如何恢复这个误删除的表 Db.dbo.TB_test --首先,备份事务日志(使用事务日志才能还原到指定的时间点) BACKUP LOG Db TO DISK='c:\db_log.bak' WITH FORMAT GO --接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行) RESTORE DATABASE Db FROM DISK='c:\db.bak' WITH REPLACE,NORECOVERY GO --将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早 DECLARE @dt datetime SELECT @dt=DATEADD(ms,-20,dt) FROM # --获取比表被删除的时间略早的时间 RESTORE LOG Db FROM DISK='c:\db_log.bak' WITH RECOVERY,STOPAT=@dt GO --查询一下,看表是否恢复 SELECT * FROM Db.dbo.TB_test /*--结果: ID ----------- (所影响的行数为 0 行) --*/ --测试成功 GO --最后删除我们做的测试环境 DROP DATABASE Db DROP TABLE #
_一级菜鸟
2020/08/02
1.3K0
在scala中使用spark sql解决特定需求
Spark sql on hive的一个强大之处就是能够嵌在编程语言内执行,比如在Java或者Scala,Python里面,正是因为这样的特性,使得spark sql开发变得更加有趣。 比如我们想做一个简单的交互式查询,我们可以直接在Linux终端直接执行spark sql查询Hive来分析,也可以开发一个jar来完成特定的任务。 有些时候单纯的使用sql开发可能功能有限,比如我有下面的一个功能: 一张大的hive表里面有许多带有日期的数据,现在一个需求是能够把不同天的数据分离导入到不同天的es索引里面,方
我是攻城师
2018/05/14
1.3K0
(简单、可靠的安装方法)在Windows Server2016中安装SQL Server2016
WinServer2016的安装参见:  在虚拟机中安装Windows Server2016
跟着阿笨一起玩NET
2020/06/15
6.5K0
1 - SQL Server 2008 之 使用SQL语句创建具有约束条件的表
本文介绍了SQL Server 2008中创建具有约束条件的表的方法。文章首先介绍了约束条件的六种类型,然后通过实例演示了如何使用这些约束条件来确保数据的完整性和唯一性。最后,文章介绍了如何创建具有约束条件的表,并使用检查约束来确保数据的完整性。
CNXY
2017/12/25
2.9K0
1 - SQL Server 2008 之 使用SQL语句创建具有约束条件的表
Excel公式技巧54: 在多个工作表中查找最大值/最小值
要在Excel工作表中获取最大值或最小值,我们马上就会想到使用MAX/MIN函数。例如,下图1所示的工作表,使用公式:
fanjy
2020/09/17
11.7K0
Excel公式技巧54: 在多个工作表中查找最大值/最小值
SQL SERVER的数据类型
    数据类弄是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。SQLServer 提供了 25 种数据类型:   ·Binary [(n)]   ·Varbinary [(n)]   ·Char [(n)]   ·Varchar[(n)]   ·Nchar[(n)]   ·Nvarchar[(n)]   ·Datetime   ·Smalldatetime   ·Decimal[(p[,s])]   ·Numeric[(p[,s])]   ·Float[(n)]   ·Real   ·Int   ·Smallint   ·Tinyint   ·Money   ·Smallmoney   ·Bit   ·Cursor   ·Sysname   ·Timestamp   ·Uniqueidentifier   ·Text   ·Image   ·Ntext
Tony老师
2020/03/05
1.6K0
SQL 找出分组中具有极值的行
你可能也遇到过这种需求:找出每个部门入职最早的员工的信息;获取每个科目最高分的学生信息;获取用户最近一次的完整登录信息。
白日梦想家
2020/07/20
1.8K0
SQL 找出分组中具有极值的行
为什么SQL语句Where 1=1 and在SQL Server中不影响性能
    最近一个朋友和我探讨关于Where 1=1 and这种形式的语句会不会影响性能。最后结论是不影响。
_一级菜鸟
2022/11/16
2K0
为什么SQL语句Where 1=1 and在SQL Server中不影响性能
在windows系统下的SQL Server 创建数据库方法
SQL Server创建数据库的方法有两种:一种是通过运行 SQL 脚本;另一种是直接使用 SQL Server 管理套件即可创建数据库,在本节中我们使用的是后一种方法。
用户8965210
2021/08/31
1.4K0
在Docker中快速使用SQL Server 2022环境
docker hub地址:https://hub.docker.com/_/microsoft-mssql-server
AiDBA宝典
2023/04/27
4.5K0
在Docker中快速使用SQL Server 2022环境

相似问题

在SQL Server中查找最大值的时间

10

在SQL中查找具有最大值的记录

30

SQL Server :在结果集中查找最大值

20

在sql server中查找具有重复数据的多个表。

22

在sql server中查找特定日期的值。

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文