当前位置: 首页 > 知识库问答 >
问题:

Excel VBA:围绕行循环,然后引用该行中的单元格

堵飞鸿
2023-03-14

我尝试在特定工作表中循环包含数据的单元格,然后将该行中的每个单元格打印到文件中。

这是我的代码,但打印行的语法有误。我不明白这是什么问题。我正试图为包含数据的每一行打印A列中的内容。

Private Sub GENERATE_ORDER_BUTTON_Click()

    Dim path As String
    path = "H:\order.json"

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set A = fs.createtextfile(path, True)
    A.WriteLine ("{")
    A.Close
    
    Dim outputstring As String
    outputstring = "  ""BASE_CE"": ["
    
    Open path For Append As #1
    Print #1, outputstring
    Close #1
    
    
    Dim LastRow As Long, ws As Worksheet

    Set ws = Sheets("CE Router")

    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
    
    Set RowRange = ws.Range("A2:A" & LastRow)
    
    For Each rrow In RowRange
    
        Set ws = Sheets("CE Router")
        
        Open path For Append As #1
        Print #1, "    {"
        Print #1, ws.Range("A" & rrow).Value
        Close #1
    
    Next rrow

 
End Sub

共有1个答案

纪佐
2023-03-14
  • 仅供参考<代码>VBE

学习模式

Option Explicit

Sub orderButton()
    Const FilePath = "F:\Test\2020\65234018\order.json"
    ' Create a reference to  VBE>Tools>References>Microsoft Scripting Runtime.
    ' Now you have intellisense for File System Object, so you can learn.
    Dim fs As Scripting.FileSystemObject: Set fs = New FileSystemObject
    fs.CreateTextFile FilePath, True
    Dim tFile As File: Set tFile = fs.GetFile(FilePath)
    Dim tStream As TextStream: Set tStream = tFile.OpenAsTextStream(ForWriting)
    With tStream
        ' 1.
        .WriteLine ("{")
        .WriteLine "  ""BASE_CE"": ["
        ' 2.
        Dim ColumnRange As Range
        Dim cel As Range
        Dim LastRow As Long
        ' If other workbook than the one containing this code,
        ' then use its name or 'ActiveWorkbook'.
        With ThisWorkbook.Worksheets("CE Router")
            LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
            Set ColumnRange = .Range("A2:A" & LastRow)
        End With
        For Each cel In ColumnRange.Cells
            .WriteLine "    {"
            .WriteLine cel.Value
        Next cel
        .Close
    End With

End Sub

后来

' When you have learned you can use the following without variables
' and without a reference (wouldn't recommend it for now):
With CreateObject("Scripting.FileSystemObject")
    .CreateTextFile FilePath, True
    With .GetFile(FilePath).OpenAsTextStream(ForWriting)
        ' The code
    End with
End With
 类似资料:
  • 因此,我将一个谷歌表单输入到一张表格中,然后从电子表格中,我根据电子表格中的答案模板制作谷歌文档。 表单可以中途保存,然后通过一个自定义问题返回,询问他们是否要保存并返回(这将提交表单)。我的电子表格上的脚本会激活onFormSubmit,因此当他们退出时,会创建一个包含一半答案的模板。当他们最终回来并完成时,我希望脚本知道从何处创建模板。 例如,退出后又添加了5行,脚本通过手动更改行“var策略

  • 现在,我的助手类名为,它接受对象。代码是: 并且我为这个助手类编写了一些单元测试,如下所示: 因为我对单元测试和模拟库(如)非常陌生。现在我的问题是我的测试有什么好处吗?我想测试我的助手类的功能是否在做它应该做的事情(即,如果共享的pref有登录的用户,则获取登录的用户),我该如何做呢?

  • 问题内容: 在转置矩阵的python中编写此函数: 在此过程中,我意识到我不完全了解嵌套在循环中的单行如何执行。请回答以下问题,以帮助我理解: 此for循环执行的顺序是什么? 如果我有一个三重嵌套的for循环,它将执行什么顺序? 等于未嵌套for循环等于什么? 鉴于 为了将其用于循环结构,对象必须是哪种类型? 将i和j分配给object中的元素的顺序是什么? 可以用不同的for循环结构模拟吗? 可

  • 问题内容: 我需要使用mySQL获取围绕ID的ID。 例子: 表格中的ID: 例如,我需要知道ID 9周围的5个ID。查询应返回: 谢谢! 问题答案: 一个可能的解决方案是 计算每个ID的绝对值,然后减去ID。 排序结果并将结果集限制为5个记录。 SQL语句 编辑 (向ypercube表示感谢,以指出此解决方案中可能存在的缺陷) 如果要从左侧获取2个id,从右侧获取2个id,则可以按以下方式调整该

  • 用python编写了这个函数,可以转换矩阵: 在这个过程中,我意识到我并不完全理解单行嵌套for循环是如何执行的。请回答以下问题,帮助我理解: 这个for循环的执行顺序是什么 鉴于 对象必须是什么类型才能将其用于循环结构? i和j分配给对象元素的顺序是什么? 可以用不同的for循环结构来模拟吗? 这个for循环可以嵌套在一个类似或不同的for循环结构中吗?它看起来怎么样? 如需更多信息,我们也将不