尝试循环范围中的非连续行

时间:2017-10-19 14:56:51

标签: excel vba excel-vba

我正在尝试编写一些会循环遍历表中一系列非连续行的内容,并更改每行中的列数据...例如,ClearContents。范围将是动态的,我要循环的行将全部为“已选择”。

我尝试了以下操作,但在第一行后停止了。我很确定问题是下一行与第一行不连续:

 For Each b In a.Rows
 mainTasks.DataBodyRange(Range("mainTasks[Status]").Column).ClearContents
 Next b

然后我有一个聪明的主意,就是写一些只能用于“选定”列单元格的东西。我尝试使用If ... .Value = Selected但是没有用。

我是否尝试过Excel 2016 VBA无法做到的事情?也就是说,循环遍历范围内的非连续行?我一直在研究并尝试了其他一些不起作用的东西。你能告诉我,如果我走错了兔子洞吗?

3 个答案:

答案 0 :(得分:1)

你的循环中没有任何变量。

它将在循环中重复清除一列。你需要以某种方式在循环中引用b,以在每个循环中得到不同的结果。

答案 1 :(得分:0)

这也有效(我认为)

Dim selectedRange As Range

Set selectedRange = Application.Selection

For Each Row In selectedRange.Rows
    Debug.Print Row.Address
Next Row

答案 2 :(得分:0)

我试图在评论中简化您的代码以用于测试目的,但以下代码应该有所帮助,

$json = json_decode(file_get_contents('yourfile.json'));
foreach($json['posts'] as $post) {
    if($post['id'] == $_GET['id']) {
        echo json_encode($post);
        exit;
    }
}

我尝试了它并且按照我设置的方式它可以正常工作。希望它有所帮助!

你还必须添加代码来复制数据,我正在清除这个中的内容,因为这是你原来的问题