qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-高级专业版🔥

用vbs数组写一段在表格如果A列有相同日期,b列数据相同时,删除整行数据,如果A列有不同日期b列数据相同时,保留整行数据

时间2023-05-25 14:11:30 提问来自 江苏省南京市 的网友 分类创作 浏览301
答:下面是使用VBS数组来实现上述功能的代码: '定义变量 Dim arrData(), arrTemp() Dim i, j, k, lRowNum, lColNum Dim dDate1, dDate2 '存储A列日期值的变量 '读取表格数据,并将其存入二维数组中 'lRowNum为行数,lColNum为列数 lRowNum = Range("A1").End(xlDown).Row '获取总行数 lColNum = Range("A1").End(xlToRight).Column '获取总列数 ReDim arrData(1 To lRowNum , 1 To lColNum) '定义二位动态数组arrData() For i = 1 To lRowNum For j = 1 To lColNum arrData(i , j) = Cells(i , j).Value Next j Next i '对arrData()进行循环比较处理 ReDim arrTemp (1 to UBound (arrData)) For i=UBound (arrData)-1 to 1 Step -1 dDate1=CDate(arrData (i+1 , 1)) dDate2=CDate(arrData (i , 1)) If arrData (i+1 , 2)=arrData (i , 2) And DateDiff ("d" , dDate2,dDate1 )=0 Then Call DeleteRowsArray (arrTemp () ) Else ReDim Preserve arrTemp (UBound (arrTemp)+1 ) arrTemp(UBound (arrTemp))=i End If Next '将处理后的文本写回Excel中For i = LBound(ArrTemp) To UBound(Arrtemp) k=Arrtemp(i)+LBound (Arrtemp)-I For J = LBound((Arrdata),J)To UBound((Arrdata),J) Cells ((K),j)= Arrdata ((K),j) Next J Next I '定义DeleteRowsArray函数Sub DeleteRowsArray () Dim m Dim n m = Ubound Array () For n = m to LBound Array () + 1 Step - 1 Rows array n delete Next End Sub

点击这里,进行内容创作

创作工场 免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!

上一篇 Python的原理 下一篇 作为环境专业的大学生,谈谈如何为建设教育强国贡献自己的力量。