首页 > 解决方案 > 有没有办法根据与其他空白单元格的接近程度来编辑单元格文本?

问题描述

我有一个 Excel 报告,它是另一个财务计划的产品。我正在使用这个程序的输出来开发另一个使用索引/匹配和其他 excel 函数的综合报告。不过,我遇到了程序给出的格式的问题。(附上查看图片)

基本上我需要将突出显示的代码文本复制到后续代码上,直到到达空白单元格,然后重复下一个突出显示的代码。这会下降很多行,其中块顶部突出显示的代码需要替换以下代码,但一旦命中两个空白单元格就会停止。有没有什么方法可以在没有宏的情况下实现这一点,可能使用某种形式的偏移公式?如果必须使用宏,那么这也足够了。财务程序不允许我更改格式,但我需要这些唯一标识符用于数据透视表。谢谢!

在此处输入图像描述

标签: excelvbaexcel-formula

解决方案


如果要复制的代码之间总是有 2 个空白行,这应该可以解决问题。如果不是,那将需要更多的工作。

Option Explicit

Sub CopyCodes()

   Dim lCurRow   As Long
   Dim lLastRow  As Long
   Dim zCopyCode As String
   
   lLastRow = ActiveSheet.Rows.Count
   lLastRow = Cells(lLastRow, 1).End(xlUp).Row() + 1
   
   zCopyCode = Cells(2, 1).Value
   Debug.Print zCopyCode
   lCurRow = 3
  
   Do
     
     If (Cells(lCurRow, 1) <> "" And _
         Cells(lCurRow, 2) <> "") Then
       Cells(lCurRow, 1) = zCopyCode
       lCurRow = lCurRow + 1
     Else
       If (Cells(lCurRow, 1) = "" And _
           Cells(lCurRow, 2) = "") Then
         lCurRow = lCurRow + 2  'Skip 2 blank rows to next code
         zCopyCode = Cells(lCurRow, 1).Value
         lCurRow = lCurRow + 1  'Move to first row to possibly copy over
       End If
       
     End If
    
   Loop Until lCurRow = lLastRow
   
End Sub  'CopyCodes

高温高压


推荐阅读