循环遍历不同工作表中的列

我有一个macros,需要根据工作表“NSA”(不包括date)中存在的列数进行循环,如下图所示:

在这里输入图像描述

循环遍历列,macros需要用一个随机数填写工作表“SA”中相应的范围,每次一列。

我想每次在“NSA”中出现循环时填入“SA”的一列,以便在B:B和C:C中保留不同的数字。

因此,在代码第一次运行时,我想只在列B中插入数据,而在第二次时只填写列C.

这就是我的代码失败的地方。 它总是在工作表“SA”中同时填充列B和C,每次运行。 这是我得到的(对于一个随机值): 在这里输入图像说明

根据“NSA”中的循环,我怎样才能改变循环,使“SA”中的列一次只更改一个列?

谢谢您的帮助。

这是我的代码:

Sub Dessaz2() Dim wb1 As Workbook Set wb1 = ActiveWorkbook Dim wsNSA As Worksheet Set wsNSA = wb1.Worksheets("NSA") Dim wsSA As Worksheet Set wsSA = wb1.Worksheets("SA") Dim col1 As Range Dim col2 As Range LR = wsNSA.Cells(3, 1).End(xlDown).Row LC = wsNSA.Cells(3, 1).End(xlToRight).Column For Each col1 In wsNSA.Range(Cells(3, 2), Cells(LR, LC)).Columns wsNSA.Activate wsSA.Activate x = WorksheetFunction.RandBetween(0, 100) wsSA.Range(Cells(3, 2), Cells(LR, LC)) = x Next End Sub 

每次填充col1.column:

 Sub Dessaz2() Dim wb1 As Workbook Set wb1 = ActiveWorkbook Dim wsNSA As Worksheet Set wsNSA = wb1.Worksheets("NSA") Dim wsSA As Worksheet Set wsSA = wb1.Worksheets("SA") Dim col1 As Range Dim col2 As Range LR = wsNSA.Cells(3, 1).End(xlDown).Row LC = wsNSA.Cells(3, 1).End(xlToRight).Column For Each col1 In wsNSA.Range(wsNSA.Cells(3, 2), wsNSA.Cells(LR, LC)).Columns wsNSA.Activate wsSA.Activate x = WorksheetFunction.RandBetween(0, 100) wsSA.Range(wsSA.Cells(3, col1.Column), wsSA.Cells(LR, col1.Column)) = x Next End Sub 
 Sub Main() Dim rng as Range, cl as Range Set rng = worksheets("NSA").Range("B1:C100") // update for your Range For each cl in rng Worksheets("SA").Range(cl.Address) = WorksheetFunction.RandBetween(0, 100) Next cl End Sub