chatgpt吧 关注:137,663贴子:427,002
  • 3回复贴,共1
写一个EXCEL VBA代码,把SHEET1中单元格A1中的文字内容,每行15个字一个字一格写到SHEET2内。


IP属地:辽宁1楼2023-11-23 15:47回复
    要编写一个 Excel VBA 代码,用于将 `Sheet1` 中单元格 `A1` 的内容分割成每行 15 个字符,并将其写入 `Sheet2` 中,您可以按照以下步骤操作:
    1. 首先,打开 Excel 并选择您要操作的文件。
    2. 按下 `Alt + F11` 打开 VBA 编辑器。
    3. 在左侧的项目资源管理器中,选择您的工作簿。
    4. 右键点击工作簿名称,选择 `插入` -> `模块`,创建一个新的 VBA 模块。
    5. 在模块窗口中粘贴以下代码:
    ```vba
    Sub CopyTextToSheet2()
    Dim SourceSheet As Worksheet
    Dim DestinationSheet As Worksheet
    Dim SourceText As String
    Dim i As Integer, j As Integer
    Dim CharCount As Integer
    ' 设置工作表
    Set SourceSheet = ThisWorkbook.Sheets("Sheet1")
    Set DestinationSheet = ThisWorkbook.Sheets("Sheet2")
    ' 读取来源单元格的内容
    SourceText = SourceSheet.Range("A1").Value
    CharCount = 15
    ' 按每行 15 个字符进行拆分
    j = 1
    For i = 1 To Len(SourceText) Step CharCount
    DestinationSheet.Cells(j, 1).Value = Mid(SourceText, i, CharCount)
    j = j + 1
    Next i
    End Sub
    ```
    6. 返回 Excel,按下 `Alt + F8`,选择 `CopyTextToSheet2` 这个宏并运行。
    这段代码会将 `Sheet1` 中 `A1` 单元格的内容分割成每行 15 个字符,并将其逐行写入 `Sheet2` 的相应单元格中。如果 `A1` 单元格的内容不够 15 个字符,则会将整个内容写入 `Sheet2` 的第一行。


    IP属地:广东来自iPhone客户端2楼2023-12-15 12:38
    收起回复
      Sub CopyText()
      Dim sourceText As String
      Dim targetSheet As Worksheet
      Dim targetRow As Integer
      Dim targetColumn As Integer
      Dim i As Integer
      '获取源文本
      sourceText = Sheet1.Range("A1").Value
      '设置目标工作表
      Set targetSheet = ThisWorkbook.Sheets("Sheet2")
      '计算目标行和列
      targetRow = 1
      targetColumn = 3
      '逐字复制文本到目标工作表
      For i = 1 To Len(sourceText)
      targetSheet.Cells(targetRow, targetColumn).Value = Mid(sourceText, i, 1)
      targetColumn = targetColumn + 1
      If Mid(sourceText, i, 1) = Chr(10) Then
      targetRow = targetRow + 1
      targetColumn = 3
      End If
      '如果列数达到15,则换行并重置列数
      If targetColumn > 15 Then
      targetRow = targetRow + 1
      targetColumn = 1
      End If
      Next i
      End Sub


      IP属地:辽宁3楼2023-12-20 15:43
      回复