将列表框中的选定行插入到工作表

时间:2018-06-21 18:11:12

标签: excel vba excel-vba

我的ListBox是一个4列的ListBox,我要在其中插入最后3列数据。

我设法整理了一段代码,将ListBox的第n行插入电子表格中的相应单元格中。但是,我要插入的是用户从列表框选择的任何行...如果他们什么都不选择,则不会插入任何内容。

我用于插入第n行的代码是:

Dim LastRow As Long
Dim n as integer
LastRow = Sheets("Sheet1").Cells(Rows.count, "F").End(xlUp).row
n = inputbox("enter value")
With Worksheets("Sheet1")
    .Range("F" & LastRow + 1) = ListBox1.Column(1, n)
    .Range("G" & LastRow + 1) = ListBox1.Column(2, n)
    .Range("H" & LastRow + 1) = ListBox1.Column(3, n)
End With

能否请您提供有关如何修改我的代码以选择所选值而不是第n个建议?以及如何在未选择的情况下不插入?

1 个答案:

答案 0 :(得分:2)

如果仅允许选择一项,则只需引用列表框元素的Tests.cs(8, 10): [CS0246] Der Typ- oder Namespacename "Fact" wurde nicht gefunden (fehlt eine using-Direktive oder ein Assemblyverweise?) Tests.cs(8, 10): [CS0246] Der Typ- oder Namespacename "FactAttribute" wurde nicht gefunden (fehlt eine using-Direktive oder ein Assemblyverweise?)

function listTables(datasetId, projectId) {
  const BigQuery = require('@google-cloud/bigquery');

  const bigquery = new BigQuery({
    projectId: projectId,
  });

  // Lists all tables in the dataset
  bigquery
    .dataset(datasetId)
    .getTables()
    .then(results => {
      const tables = results[0];
      console.log('Tables:');
      tables.forEach(table => console.log(table.id));
    })
    .catch(err => {
      console.error('ERROR:', err);
    });
  // [END bigquery_list_tables]
}

listTables('YOUR_DATASET_NAME','YOUR_PROJECT_NAME');

如果您允许选择多个项目,则需要遍历列表框中的每个项目,并使用.Value确定是否选择了该项目。

Dim LastRow As Long
Dim n as integer
LastRow = Sheets("Sheet1").Cells(Rows.count, "F").End(xlUp).row
n = ListBox1.Value
With Worksheets("Sheet1")
    .Range("F" & LastRow + 1) = ListBox1.Column(1, n)
    .Range("G" & LastRow + 1) = ListBox1.Column(2, n)
    .Range("H" & LastRow + 1) = ListBox1.Column(3, n)
End With